The project data is split into three levels of detail (High, Mid, Low) to enable efficient querying. Always start with the highest, most abstract level of data and only "drill down" to a more detailed level when the query requires it. This prevents unnecessary processing of large, granular files.
The workflow is always: High -> Mid -> Low. Never start with the Low-level data unless you have a very specific fileID
you need to look up.
When you receive a user query, use the following decision process to select the correct data source.
First, check if the question is about the project's global configuration, dependencies, or a general summary.
HighLevel.zip
.manifest.json
.packages.json
.manifest.json
.If the question is about the arrangement of objects within a scene/prefab, what components an object has, or where assets are, the Mid-level data is the correct source.
MidLevel.zip
.SampleScene.unity
." -> Read Assets/Scenes/SampleScene.json
and format the nested structure.components
.components
list for each object.PlayerController.cs
script?" -> Find the script's GUID in the components
list of an object, then look up that GUID in GuidMappers/scripts.json
to get the file path.Only proceed to this step if the user asks for a specific detail that is not present in the Mid-level hierarchy view. You should ideally already have the fileID
of the target object from a previous Mid-level query.
LowLevel.zip
.Player
prefab?"
Assets/CustomGame/Prefabs/Player.json
. Find the "Gun" object in the hierarchy to get its fileID
(e.g., 101112
).Assets/CustomGame/Prefabs/Player.prefab/
. Find the Transform
component associated with the "Gun" GameObject (you may need to open 101112.json
to find its component fileID
s). Open the Transform
's JSON file (e.g., 1011120.json
) and read the value of the m_LocalPosition
key..../{player_fileID}.json
file. Find the MonoBehaviour
component that matches the script GUID. Look at its properties to find the movementSpeed
value.For all JSON files, always check for tokenization first. If the file contains a key_mapper
, you must de-tokenize the data
payload before attempting to process it according to the schemas and strategies outlined above.