Checkpoint 4: harden native paths, authoring workflows and Player lifecycle

This commit is contained in:
Emil
2026-09-18 05:14:50 +03:00
parent 5ac4db438d
commit 45bc352d46
88 changed files with 12606 additions and 504 deletions
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include <nlohmann/json_fwd.hpp>
#include <string_view>
namespace faset::runtime {
// Exact native TypeIds. A prefix alone does not make a custom type native.
bool is_builtin_component(std::string_view type) noexcept;
// Player boundary: require every custom TypeId and its exact positive integer
// version in the linked gameplay schema. Accepts its array or a {types:[...]}
// manifest. Native components always require version 1. A missing version means
// 1 for existing development scenes. Gameplay may not redeclare native TypeIds.
// Does not migrate or change source data.
// Structural/native field checks remain Runtime::load's responsibility; this
// function has no authoring dependency and runs no gameplay callbacks.
void validate_scene_schemas(const nlohmann::json& scene, const nlohmann::json& gameplay_schema);
} // namespace faset::runtime