53 if (validated_val.has_value()) {
54 validated_val = compare_less_equal<std::size_t>(
55 validated_val.value(),
61 return cfg.num_tiles_total_validated(t, s);
73 if (validated_val.has_value()) {
74 validated_val = compare_greater_equal<std::size_t>(
75 validated_val.value(),
79 "num_tiles_in_primary",
81 return cfg.num_tiles_in_primary_validated(t, s);
93 if (validated_val.has_value()) {
94 validated_val = compare_less_equal<std::size_t>(
95 validated_val.value(),
99 "num_metatiles_total",
101 return cfg.num_metatiles_total_validated(t, s);
104 return validated_val;
113 if (validated_val.has_value()) {
114 validated_val = compare_greater_equal<std::size_t>(
115 validated_val.value(),
119 "num_metatiles_in_primary",
121 return cfg.num_metatiles_in_primary_validated(t, s);
124 return validated_val;
133 if (validated_val.has_value()) {
134 validated_val = compare_less_equal<std::size_t>(
135 validated_val.value(),
139 "num_palettes_total",
141 return cfg.num_palettes_total_validated(t, s);
144 return validated_val;
153 if (validated_val.has_value()) {
154 validated_val = compare_greater_equal<std::size_t>(
155 validated_val.value(),
159 "num_palettes_in_primary",
161 return cfg.num_palettes_in_primary_validated(t, s);
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;
220 return validated_val;
228 return validated_val;
236 return validated_val;
244 return validated_val;
253 if (validated_val.has_value()) {
254 validated_val = require_packing_strategy_backtracking<TileSharingPacking>(
255 validated_val.value(),
261 return cfg.packing_strategy_validated(t, s);
264 return validated_val;
272 return validated_val;
280 return validated_val;
288 return validated_val;
296 return validated_val;
304 return validated_val;
312 return validated_val;
320 return validated_val;
328 return validated_val;
338 if (raw_val.has_value()) {
354 if (raw_val.has_value()) {
370 if (raw_val.has_value()) {
386 if (raw_val.has_value()) {
402 if (raw_val.has_value()) {
418 if (raw_val.has_value()) {
434 if (raw_val.has_value()) {
450 if (raw_val.has_value()) {
466 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< TilesPaletteMode > > tiles_palette_mode_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
virtual ChainableResult< ConfigValue< TilesPaletteMode > > tiles_palette_mode_validated(ConfigScopeType type, const std::string &scope) const
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
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 > > 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< bool > > ignore_triple_layer_content_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< AnimPaletteResolutionStrategy > > global_anim_palette_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_total_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::vector< PaletteHint > > > palette_hints_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< PackingStrategyParams > > packing_strategy_params_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< bool > > ignore_triple_layer_content(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::size_t > > num_palettes_in_primary(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::vector< PaletteHint > > > palette_hints(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< ArtifactEditMode > > palettes_edit_mode_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_metatiles_in_primary_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimPaletteResolutionStrategy > > global_anim_palette_resolution_strategy_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
virtual ChainableResult< ConfigValue< std::size_t > > num_palettes_in_primary_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< Rgba32 > > extrinsic_transparency(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_palettes_in_primary_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< PackingStrategyType > > packing_strategy(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< AnimMultiPaletteSubtileResolutionStrategy > > global_anim_multi_palette_subtile_resolution_strategy_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< AnimMultiPaletteSubtileResolutionStrategy > > global_anim_multi_palette_subtile_resolution_strategy_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::size_t > > num_tiles_in_primary_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< bool > > palette_hints_enabled_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::vector< PaletteHint > > > palette_hints_validated(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
virtual ChainableResult< ConfigValue< std::size_t > > num_palettes_total_validated(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
ChainableResult< ConfigValue< ArtifactEditMode > > palettes_edit_mode(ConfigScopeType type, const std::string &scope) const
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< bool > > palette_hints_enabled_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< AnimPaletteResolutionStrategy > > global_anim_palette_resolution_strategy(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< TileSharingAlignment > > tile_sharing_alignment_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< bool > > ignore_triple_layer_content_validated(ConfigScopeType type, const std::string &scope) const
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
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< 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< 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< std::size_t > > num_palettes_total(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::size_t > > num_palettes_total_raw(ConfigScopeType type, const std::string &scope) const =0
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< bool > > palette_hints_enabled(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::size_t > > num_tiles_total(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< AnimMultiPaletteSubtileResolutionStrategy > > global_anim_multi_palette_subtile_resolution_strategy(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::size_t > > num_tiles_total_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< ArtifactEditMode > > palettes_edit_mode_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< TilesPaletteMode > > tiles_palette_mode(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.