# Schema: Parity PR Documentation Schema (prdoc) # See doc at https://github.com/paritytech/prdoc title: Different builder pattern constructors for XCM doc: - audience: Core Dev description: | The `builder()` constructor for XCM programs now only allows building messages that pay for fees, i.e. messages that would pass the `AllowTopLevelPaidExecutionFrom` barrier. Another constructor, `builder_unpaid()` requires an explicit `UnpaidExecution` instruction before anything else. For building messages without any restriction, `builder_unsafe` can be used. This has been named like that since in general the other two should be used instead, but it's okay to use it for teaching purposes or for experimenting. migrations: db: [] runtime: [] crates: [] host_functions: []