51 virtual void add_provider(std::unique_ptr<ConfigProvider> provider) = 0;
59 if (validated_val.has_value()) {
60 validated_val = compare_less_equal<std::size_t>(
61 validated_val.value(), *
this, type, scope,
"num_tiles_total",
74 if (validated_val.has_value()) {
75 validated_val = compare_greater_equal<std::size_t>(
76 validated_val.value(), *
this, type, scope,
"num_tiles_in_primary",
89 if (validated_val.has_value()) {
90 validated_val = compare_less_equal<std::size_t>(
91 validated_val.value(), *
this, type, scope,
"num_metatiles_total",
104 if (validated_val.has_value()) {
105 validated_val = compare_greater_equal<std::size_t>(
106 validated_val.value(), *
this, type, scope,
"num_metatiles_in_primary",
110 return validated_val;
119 if (validated_val.has_value()) {
120 validated_val = compare_less_equal<std::size_t>(
121 validated_val.value(), *
this, type, scope,
"num_pals_total",
125 return validated_val;
134 if (validated_val.has_value()) {
135 validated_val = compare_greater_equal<std::size_t>(
136 validated_val.value(), *
this, type, scope,
"num_pals_in_primary",
140 return validated_val;
148 return validated_val;
156 return validated_val;
164 return validated_val;
172 return validated_val;
180 return validated_val;
188 return validated_val;
196 return validated_val;
204 return validated_val;
212 return validated_val;
221 if (validated_val.has_value()) {
222 validated_val = require_packing_strategy_backtracking<TileSharingPacking>(
223 validated_val.value(), *
this, type, scope,
"packing_strategy",
227 return validated_val;
235 return validated_val;
243 return validated_val;
251 return validated_val;
259 return validated_val;
267 return validated_val;
275 return validated_val;
283 return validated_val;
291 return validated_val;
303 if (raw_val.has_value()) {
319 if (raw_val.has_value()) {
335 if (raw_val.has_value()) {
351 if (raw_val.has_value()) {
367 if (raw_val.has_value()) {
383 if (raw_val.has_value()) {
399 if (raw_val.has_value()) {
415 if (raw_val.has_value()) {
431 if (raw_val.has_value()) {
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Interface that defines a complete domain layer configuration.
virtual ChainableResult< ConfigValue< std::vector< PaletteHint > > > pal_hints_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::size_t > > num_pals_total_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< FrameLinking > > global_frame_linking_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< TileSharingPacking > > tile_sharing_packing(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > max_map_data_size_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::vector< PaletteHint > > > pal_hints(ConfigScopeType type, const std::string &scope) const
virtual void add_provider(std::unique_ptr< ConfigProvider > provider)=0
Prepends a ConfigProvider to the provider chain at highest priority.
virtual ChainableResult< ConfigValue< std::size_t > > num_metatiles_total_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< ArtifactEditMode > > pals_edit_mode(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< ArtifactEditMode > > tiles_edit_mode(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::size_t > > num_tiles_in_primary(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_total_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< PackingStrategyParams > > packing_strategy_params_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimMultiPalSubtileResolutionStrategy > > global_anim_multi_pal_subtile_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::size_t > > num_metatiles_in_primary_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< ArtifactEditMode > > pals_edit_mode_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::size_t > > num_pals_total_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_per_metatile_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_per_metatile_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< TileSharingPacking > > tile_sharing_packing_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< TilesPalMode > > tiles_pal_mode(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_pals_in_primary_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< Rgba32 > > extrinsic_transparency(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< PackingStrategyType > > packing_strategy(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< bool > > pal_hints_enabled_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< bool > > cross_tileset_anim_linking_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< ArtifactEditMode > > tiles_edit_mode_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimMultiPalSubtileResolutionStrategy > > global_anim_multi_pal_subtile_resolution_strategy_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_in_primary_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< TilesPalMode > > tiles_pal_mode_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< bool > > pal_hints_enabled(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< ArtifactEditMode > > pals_edit_mode_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< FrameLinking > > global_frame_linking(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > max_map_data_size_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< std::size_t > > num_metatiles_total(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::size_t > > num_tiles_per_metatile(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< Rgba32 > > extrinsic_transparency_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< PackingStrategyType > > packing_strategy_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< TileSharingAlignment > > tile_sharing_alignment_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< bool > > cross_tileset_anim_linking(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< TileSharingAlignment > > tile_sharing_alignment_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< std::size_t > > num_metatiles_in_primary(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< Rgba32 > > extrinsic_transparency_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_pals_in_primary_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimPalResolutionStrategy > > global_anim_pal_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< std::size_t > > num_pals_total(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< TilesPalMode > > tiles_pal_mode_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< AnimMultiPalSubtileResolutionStrategy > > global_anim_multi_pal_subtile_resolution_strategy(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< AnimKeyFrameResolutionStrategy > > global_anim_key_frame_resolution_strategy(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::size_t > > max_map_data_size(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< TileSharingAlignment > > tile_sharing_alignment(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::size_t > > num_pals_in_primary(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< PerAnimOverrides > > per_anim_overrides(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< PackingStrategyParams > > packing_strategy_params(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< ArtifactEditMode > > tiles_edit_mode_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< bool > > pal_hints_enabled_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::size_t > > num_metatiles_in_primary_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< PerAnimOverrides > > per_anim_overrides_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< bool > > cross_tileset_anim_linking_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimKeyFrameResolutionStrategy > > global_anim_key_frame_resolution_strategy_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< PackingStrategyParams > > packing_strategy_params_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< AnimPalResolutionStrategy > > global_anim_pal_resolution_strategy(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimPalResolutionStrategy > > global_anim_pal_resolution_strategy_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_metatiles_total_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< FrameLinking > > global_frame_linking_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< PackingStrategyType > > packing_strategy_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::size_t > > num_tiles_total(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimKeyFrameResolutionStrategy > > global_anim_key_frame_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< TileSharingPacking > > tile_sharing_packing_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< PerAnimOverrides > > per_anim_overrides_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::vector< PaletteHint > > > pal_hints_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_total_validated(ConfigScopeType type, const std::string &scope) const
virtual ~DomainConfig()=default
Domain configuration validators for domain-layer models.
ChainableResult< ConfigValue< std::size_t > > size_t_val_greater_than_zero(const ConfigValue< std::size_t > &val)
Validates that a size_t config value is greater than zero.
ChainableResult< ConfigValue< std::size_t > > size_t_val_eight_or_twelve(const ConfigValue< std::size_t > &val)
Validates that a size_t config value is either 8 or 12.
ConfigScopeType
Specifies the scope type for configuration value lookups.
ChainableResult< ConfigValue< Rgba32 > > rgba_alpha_component_opaque(const ConfigValue< Rgba32 > &val)
Validates that an Rgba32 alpha component is opaque.
Cross-cutting configuration validators shared across all architectural layers.