@@ -40,11 +40,27 @@ class Experiment(BaseModel, extra="forbid"):
4040 description = "Root experiment type (NSC, Na, PG, MINES, TRI)"
4141 )
4242
43+ global_formula : str = Field (
44+ description = (
45+ "The canonical formula for the target material, independent of per-run precursor adjustments."
46+ "Represents what the experiment was ultimately trying to synthesize. This should be same as `formula`."
47+ ),
48+ )
49+
4350 experiment_subgroup : str | None = Field (
4451 default = None , description = "Experiment subgroup (e.g., NSC_249, Na_123)"
4552 )
4653
47- target_formula : str = Field (description = "Target chemical formula" )
54+ target_formula : str | None = Field (
55+ default = None ,
56+ description = (
57+ "The formula used internally to determine precursor weights."
58+ "May differ from the true intended formula (global_formula) due to experimental"
59+ "constraints (e.g. oxygen mass balancing corrections, excess"
60+ "alkali for battery materials). Not always a chemically meaningful"
61+ "representation of what was attempted. Can be null if there is no adjustment for experiment."
62+ ),
63+ )
4864
4965 last_updated : datetime = Field (description = "Last modification timestamp" )
5066
@@ -56,6 +72,11 @@ class Experiment(BaseModel, extra="forbid"):
5672 default = None , description = "Optional notes about the experiment"
5773 )
5874
75+ precursor_powders : list [str ] | None = Field (
76+ default = None ,
77+ description = "List of precursor powder names used in the experiment" ,
78+ )
79+
5980 # === Heating fields (prefix: heating_) ===
6081 heating_method : Literal ["standard" , "atmosphere" , "manual" , "none" ] | None = Field (
6182 default = None , description = "Heating method used"
@@ -85,6 +106,10 @@ class Experiment(BaseModel, extra="forbid"):
85106 default = None , description = "Whether low temperature calcination was used"
86107 )
87108
109+ heating_furnace_name : str | None = Field (
110+ default = None , description = "Heating furnace type"
111+ )
112+
88113 # === Recovery fields (prefix: recovery_) ===
89114 recovery_total_dosed_mass_mg : float | None = Field (
90115 default = None , description = "Total mass of all powders dosed in mg"
0 commit comments