@mat3ra/esse 2026.5.18-2 → 2026.5.27-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/dist/js/esse/JSONSchemasGenerator.d.ts +2 -1
  2. package/dist/js/esse/JSONSchemasGenerator.js +1 -1
  3. package/dist/js/esse/JSONSchemasInterface.d.ts +1 -1
  4. package/dist/js/esse/JSONSchemasInterface.js +1 -1
  5. package/dist/js/esse/JSONSchemasInterfaceServer.js +3 -2
  6. package/dist/js/esse/schemaUtils.d.ts +1 -1
  7. package/dist/js/esse/schemaUtils.js +2 -1
  8. package/dist/js/esse/server/utils.d.ts +12 -0
  9. package/dist/js/esse/server/utils.js +68 -0
  10. package/dist/js/esse/utils.d.ts +0 -11
  11. package/dist/js/esse/utils.js +3 -60
  12. package/dist/js/example/job.json +38 -11
  13. package/dist/js/example/material.json +7 -1
  14. package/dist/js/example/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +35 -5
  15. package/dist/js/example/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +28 -4
  16. package/dist/js/example/materials_category/defective_structures/two_dimensional/adatom/configuration.json +28 -4
  17. package/dist/js/example/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +35 -5
  18. package/dist/js/example/materials_category/defective_structures/two_dimensional/island/configuration.json +42 -6
  19. package/dist/js/example/materials_category/defective_structures/two_dimensional/terrace/configuration.json +42 -6
  20. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +14 -2
  21. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +14 -2
  22. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +14 -2
  23. package/dist/js/example/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +7 -1
  24. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanoribbon.json +21 -3
  25. package/dist/js/example/materials_category/pristine_structures/two_dimensional/nanotape.json +14 -2
  26. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +14 -2
  27. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +14 -2
  28. package/dist/js/example/materials_category/processed_structures/two_dimensional/passivation/configuration.json +28 -4
  29. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +7 -1
  30. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +7 -1
  31. package/dist/js/example/materials_category_components/entities/core/three_dimensional/crystal.json +7 -1
  32. package/dist/js/example/materials_category_components/entities/core/two_dimensional/vacuum.json +7 -1
  33. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +7 -1
  34. package/dist/js/example/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +7 -1
  35. package/dist/js/example/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +28 -4
  36. package/dist/js/example/materials_category_components/operations/core/combinations/merge.json +14 -2
  37. package/dist/js/example/materials_category_components/operations/core/combinations/stack.json +14 -2
  38. package/dist/js/example/materials_category_components/operations/core/modifications/perturb.json +7 -1
  39. package/dist/js/example/model.json +2 -1
  40. package/dist/js/example/software/application.json +1 -0
  41. package/dist/js/example/software/executable.json +3 -4
  42. package/dist/js/example/software/flavor.json +9 -2
  43. package/dist/js/example/software/template.json +5 -8
  44. package/dist/js/example/software_directory/modeling/espresso.json +2 -1
  45. package/dist/js/example/software_directory/modeling/nwchem.json +3 -1
  46. package/dist/js/example/software_directory/modeling/unit/execution.json +57 -15
  47. package/dist/js/example/software_directory/modeling/vasp.json +2 -1
  48. package/dist/js/example/software_directory/scripting/jupyter_lab.json +2 -1
  49. package/dist/js/example/software_directory/scripting/python.json +2 -1
  50. package/dist/js/example/software_directory/scripting/shell.json +2 -1
  51. package/dist/js/example/software_directory/scripting/unit/execution.json +57 -15
  52. package/dist/js/example/system/runtime_items.json +14 -0
  53. package/dist/js/example/workflow/subworkflow.json +32 -10
  54. package/dist/js/example/workflow/unit/assignment.json +5 -1
  55. package/dist/js/example/workflow/unit/condition.json +5 -1
  56. package/dist/js/example/workflow/unit/execution.json +29 -9
  57. package/dist/js/example/workflow/unit/io/api.json +1 -0
  58. package/dist/js/example/workflow/unit/io/db_collection.json +5 -0
  59. package/dist/js/example/workflow/unit/io/db_ids.json +6 -0
  60. package/dist/js/example/workflow/unit/io/object_storage.json +2 -1
  61. package/dist/js/example/workflow/unit/io.json +22 -2
  62. package/dist/js/example/workflow/unit/map.json +5 -1
  63. package/dist/js/example/workflow/unit/reduce.json +5 -1
  64. package/dist/js/example/workflow.json +38 -11
  65. package/dist/js/schema/apse/file/applications/espresso/7.2/pw.x/atomic_species.json +5 -0
  66. package/dist/js/schema/apse/file/applications/espresso/7.2/pw.x.json +5 -0
  67. package/dist/js/schema/context_providers_directory/by_application/nwchem_total_energy_context_provider.json +7 -1
  68. package/dist/js/schema/context_providers_directory/by_application/qe_neb_context_provider.json +164 -6
  69. package/dist/js/schema/context_providers_directory/by_application/qe_pwx_base_context_provider.json +10 -0
  70. package/dist/js/schema/context_providers_directory/by_application/qe_pwx_context_provider.json +17 -1
  71. package/dist/js/schema/context_providers_directory/by_application/vasp_context_provider.json +7 -1
  72. package/dist/js/schema/context_providers_directory/by_application/vasp_neb_context_provider.json +7 -1
  73. package/dist/js/schema/context_providers_directory/collinear_magnetization_context_provider.json +14 -0
  74. package/dist/js/schema/context_providers_directory/non_collinear_magnetization_context_provider.json +7 -0
  75. package/dist/js/schema/context_providers_directory/points_grid_data_provider.json +23 -6
  76. package/dist/js/schema/context_providers_directory/points_path_data_provider.json +6 -2
  77. package/dist/js/schema/context_providers_directory/points_path_data_provider_rendering.json +32 -0
  78. package/dist/js/schema/core/primitive/linked_list/named_node.json +2 -1
  79. package/dist/js/schema/core/primitive/linked_list/named_node_in_group.json +2 -1
  80. package/dist/js/schema/core/primitive/linked_list.json +4 -2
  81. package/dist/js/schema/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.json +3 -0
  82. package/dist/js/schema/in_memory_entity/named.json +3 -0
  83. package/dist/js/schema/in_memory_entity/named_defaultable.json +3 -0
  84. package/dist/js/schema/in_memory_entity/named_defaultable_has_metadata.json +3 -0
  85. package/dist/js/schema/in_memory_entity/named_defaultable_runtime_items.json +3 -0
  86. package/dist/js/schema/job/base.json +133 -132
  87. package/dist/js/schema/job/compute.json +1 -1
  88. package/dist/js/schema/job/compute_property.json +182 -0
  89. package/dist/js/schema/job.json +3829 -4566
  90. package/dist/js/schema/material/material_properties.json +736 -0
  91. package/dist/js/schema/material/metadata/boundary_conditions.json +32 -0
  92. package/dist/js/schema/material/metadata/bulk_properties.json +13 -0
  93. package/dist/js/schema/material/metadata/slab_properties.json +41 -0
  94. package/dist/js/schema/material/metadata.json +101 -0
  95. package/dist/js/schema/material.json +117 -27
  96. package/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +1069 -268
  97. package/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +1069 -268
  98. package/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json +464 -108
  99. package/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +1069 -268
  100. package/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json +698 -164
  101. package/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json +698 -164
  102. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +116 -27
  103. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +232 -54
  104. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +232 -54
  105. package/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +116 -27
  106. package/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json +116 -27
  107. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json +348 -81
  108. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json +232 -54
  109. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +232 -54
  110. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +232 -54
  111. package/dist/js/schema/materials_category/processed_structures/two_dimensional/passivation/configuration.json +233 -54
  112. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +116 -27
  113. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +116 -27
  114. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json +116 -27
  115. package/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json +116 -27
  116. package/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json +116 -27
  117. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +116 -27
  118. package/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +116 -27
  119. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json +116 -27
  120. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json +116 -27
  121. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json +116 -27
  122. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json +116 -27
  123. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +116 -27
  124. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +116 -27
  125. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +116 -27
  126. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json +116 -27
  127. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +348 -81
  128. package/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json +117 -27
  129. package/dist/js/schema/method/categorized_method.json +4 -0
  130. package/dist/js/schema/method/unit_method.json +3 -0
  131. package/dist/js/schema/method.json +7 -1
  132. package/dist/js/schema/methods_directory/legacy/localorbital.json +7 -1
  133. package/dist/js/schema/methods_directory/legacy/pseudopotential.json +7 -1
  134. package/dist/js/schema/methods_directory/legacy/regression.json +4 -0
  135. package/dist/js/schema/methods_directory/legacy/unknown.json +7 -1
  136. package/dist/js/schema/methods_directory/mathematical/cg.json +2 -1
  137. package/dist/js/schema/methods_directory/mathematical/davidson.json +2 -1
  138. package/dist/js/schema/methods_directory/mathematical/regression.json +3 -2
  139. package/dist/js/schema/methods_directory/physical/ao/dunning.json +2 -1
  140. package/dist/js/schema/methods_directory/physical/ao/other.json +2 -1
  141. package/dist/js/schema/methods_directory/physical/ao/pople.json +2 -1
  142. package/dist/js/schema/methods_directory/physical/psp.json +2 -1
  143. package/dist/js/schema/methods_directory/physical/pw.json +2 -1
  144. package/dist/js/schema/methods_directory/physical/smearing.json +2 -1
  145. package/dist/js/schema/methods_directory/physical/tetrahedron.json +2 -1
  146. package/dist/js/schema/model/categorized_model.json +5 -0
  147. package/dist/js/schema/model/model_without_method.json +1 -0
  148. package/dist/js/schema/model.json +7 -2
  149. package/dist/js/schema/models_directory/double_hybrid.json +1 -0
  150. package/dist/js/schema/models_directory/gga.json +1 -0
  151. package/dist/js/schema/models_directory/gw.json +1 -0
  152. package/dist/js/schema/models_directory/hybrid.json +1 -0
  153. package/dist/js/schema/models_directory/lda.json +1 -0
  154. package/dist/js/schema/models_directory/legacy/any.json +488 -0
  155. package/dist/js/schema/models_directory/legacy/dft.json +267 -39
  156. package/dist/js/schema/models_directory/legacy/ml.json +10 -9
  157. package/dist/js/schema/models_directory/legacy/unknown.json +10 -9
  158. package/dist/js/schema/models_directory/mgga.json +1 -0
  159. package/dist/js/schema/models_directory/re.json +1 -0
  160. package/dist/js/schema/project.json +3 -0
  161. package/dist/js/schema/properties_directory/non_scalar/workflow.json +3682 -4421
  162. package/dist/js/schema/property/holder.json +3717 -4456
  163. package/dist/js/schema/software/application.json +53 -24
  164. package/dist/js/schema/software/application_properties.json +68 -0
  165. package/dist/js/schema/software/application_with_build_config.json +52 -23
  166. package/dist/js/schema/software/executable.json +67 -108
  167. package/dist/js/schema/software/executable_properties.json +24 -0
  168. package/dist/js/schema/software/flavor.json +90 -128
  169. package/dist/js/schema/software/flavor_properties.json +50 -0
  170. package/dist/js/schema/software/template.json +30 -35
  171. package/dist/js/schema/software/template_properties.json +44 -0
  172. package/dist/js/schema/software_directory/modeling/deepmd.json +48 -19
  173. package/dist/js/schema/software_directory/modeling/lammps.json +47 -18
  174. package/dist/js/schema/software_directory/modeling/nwchem.json +48 -19
  175. package/dist/js/schema/software_directory/modeling/unit/execution.json +2019 -455
  176. package/dist/js/schema/software_directory/modeling/vasp.json +48 -19
  177. package/dist/js/schema/software_directory/scripting/jupyter_lab.json +48 -19
  178. package/dist/js/schema/software_directory/scripting/python.json +48 -19
  179. package/dist/js/schema/software_directory/scripting/shell.json +48 -19
  180. package/dist/js/schema/software_directory/scripting/unit/execution.json +2019 -455
  181. package/dist/js/schema/system/bankable.json +4 -0
  182. package/dist/js/schema/system/creator.json +2 -1
  183. package/dist/js/schema/system/creator_account.json +3 -0
  184. package/dist/js/schema/system/in_set.json +3 -0
  185. package/dist/js/schema/system/name.json +3 -0
  186. package/dist/js/schema/system/owner.json +2 -1
  187. package/dist/js/schema/system/path_entity.json +3 -0
  188. package/dist/js/schema/system/runtime_item.json +17 -0
  189. package/dist/js/schema/system/runtime_items.json +94 -0
  190. package/dist/js/schema/workflow/base.json +4591 -39
  191. package/dist/js/schema/workflow/base_flow.json +1 -1
  192. package/dist/js/schema/workflow/subworkflow/mixin.json +3919 -0
  193. package/dist/js/schema/workflow/subworkflow/unit.json +2365 -1560
  194. package/dist/js/schema/workflow/subworkflow.json +3137 -1852
  195. package/dist/js/schema/workflow/unit/assertion.json +96 -140
  196. package/dist/js/schema/workflow/unit/assignment.json +129 -173
  197. package/dist/js/schema/workflow/unit/base.json +90 -133
  198. package/dist/js/schema/workflow/unit/condition.json +132 -175
  199. package/dist/js/schema/workflow/unit/context/_base.json +20 -0
  200. package/dist/js/schema/workflow/unit/context/_extra_data_material_hash.json +14 -0
  201. package/dist/js/schema/workflow/unit/context/item/boundaryConditions.json +63 -0
  202. package/dist/js/schema/workflow/unit/context/item/collinearMagnetization.json +82 -0
  203. package/dist/js/schema/workflow/unit/context/item/cutoffs.json +38 -0
  204. package/dist/js/schema/workflow/unit/context/item/dynamics.json +48 -0
  205. package/dist/js/schema/workflow/unit/context/item/grid.json +100 -0
  206. package/dist/js/schema/workflow/unit/context/item/hubbard_j.json +59 -0
  207. package/dist/js/schema/workflow/unit/context/item/hubbard_legacy.json +49 -0
  208. package/dist/js/schema/workflow/unit/context/item/hubbard_u.json +57 -0
  209. package/dist/js/schema/workflow/unit/context/item/hubbard_v.json +64 -0
  210. package/dist/js/schema/workflow/unit/context/item/input.json +712 -0
  211. package/dist/js/schema/workflow/unit/context/item/mlSettings.json +43 -0
  212. package/dist/js/schema/workflow/unit/context/item/mlTrainTestSplit.json +37 -0
  213. package/dist/js/schema/workflow/unit/context/item/neb.json +35 -0
  214. package/dist/js/schema/workflow/unit/context/item/nonCollinearMagnetization.json +150 -0
  215. package/dist/js/schema/workflow/unit/context/item/path.json +62 -0
  216. package/dist/js/schema/workflow/unit/context/item.json +1594 -0
  217. package/dist/js/schema/workflow/unit/execution.json +1928 -423
  218. package/dist/js/schema/workflow/unit/input/_input.json +74 -12
  219. package/dist/js/schema/workflow/unit/input/_inputItem.json +70 -10
  220. package/dist/js/schema/workflow/unit/input/_inputItemId.json +3 -1
  221. package/dist/js/schema/workflow/unit/io/api.json +5 -1
  222. package/dist/js/schema/workflow/unit/io/db_collection.json +24 -0
  223. package/dist/js/schema/workflow/unit/io/db_ids.json +22 -0
  224. package/dist/js/schema/workflow/unit/io/object_storage.json +5 -1
  225. package/dist/js/schema/workflow/unit/io.json +182 -253
  226. package/dist/js/schema/workflow/unit/map.json +134 -177
  227. package/dist/js/schema/workflow/unit/mixins/assertion.json +23 -0
  228. package/dist/js/schema/workflow/unit/mixins/assignment.json +57 -0
  229. package/dist/js/schema/workflow/unit/mixins/base.json +50 -0
  230. package/dist/js/schema/workflow/unit/mixins/condition.json +61 -0
  231. package/dist/js/schema/workflow/unit/mixins/execution.json +1998 -0
  232. package/dist/js/schema/workflow/unit/mixins/io.json +131 -0
  233. package/dist/js/schema/workflow/unit/mixins/map.json +60 -0
  234. package/dist/js/schema/workflow/unit/mixins/processing.json +27 -0
  235. package/dist/js/schema/workflow/unit/mixins/reduce.json +43 -0
  236. package/dist/js/schema/workflow/unit/mixins/subworkflow.json +11 -0
  237. package/dist/js/schema/workflow/unit/reduce.json +117 -160
  238. package/dist/js/schema/workflow/unit/subworkflow.json +91 -134
  239. package/dist/js/schema/workflow/unit.json +285 -2477
  240. package/dist/js/schema/workflow.json +3684 -4422
  241. package/dist/js/schemas.json +1 -1
  242. package/dist/js/scripts/compileTs.js +1 -1
  243. package/dist/js/scripts/setSchemaIds.js +2 -1
  244. package/dist/js/types.d.ts +27163 -15301
  245. package/dist/js/types.js +5 -5
  246. package/dist/js/utils/ajv.js +5 -4
  247. package/dist/js/utils/common.js +3 -2
  248. package/dist/js/utils/filesystem.js +3 -2
  249. package/example/material.json +7 -1
  250. package/example/model.json +2 -1
  251. package/example/software/application.json +1 -0
  252. package/example/software/executable.json +3 -4
  253. package/example/software/flavor.json +9 -2
  254. package/example/software/template.json +5 -8
  255. package/example/software_directory/modeling/espresso.json +2 -1
  256. package/example/software_directory/modeling/nwchem.json +4 -2
  257. package/example/software_directory/modeling/unit/execution.json +17 -2
  258. package/example/software_directory/modeling/vasp.json +2 -1
  259. package/example/software_directory/scripting/jupyter-lab.json +2 -1
  260. package/example/software_directory/scripting/python.json +2 -1
  261. package/example/software_directory/scripting/shell.json +2 -1
  262. package/example/software_directory/scripting/unit/execution.json +17 -2
  263. package/example/system/runtime_items.json +14 -0
  264. package/example/workflow/unit/assignment.json +5 -1
  265. package/example/workflow/unit/condition.json +5 -1
  266. package/example/workflow/unit/execution.json +7 -3
  267. package/example/workflow/unit/io/api.json +1 -0
  268. package/example/workflow/unit/io/db_collection.json +5 -0
  269. package/example/workflow/unit/io/db_ids.json +6 -0
  270. package/example/workflow/unit/io/object_storage.json +2 -1
  271. package/example/workflow/unit/io.json +9 -29
  272. package/example/workflow/unit/map.json +5 -1
  273. package/example/workflow/unit/reduce.json +5 -1
  274. package/example/workflow.json +6 -1
  275. package/package.json +2 -1
  276. package/schema/apse/file/applications/espresso/7.2/pw.x/atomic_species.json +6 -1
  277. package/schema/context_providers_directory/by_application/nwchem_total_energy_context_provider.json +7 -1
  278. package/schema/context_providers_directory/by_application/qe_neb_context_provider.json +12 -6
  279. package/schema/context_providers_directory/by_application/qe_pwx_context_provider.json +10 -1
  280. package/schema/context_providers_directory/by_application/vasp_context_provider.json +7 -1
  281. package/schema/context_providers_directory/by_application/vasp_neb_context_provider.json +7 -1
  282. package/schema/context_providers_directory/collinear_magnetization_context_provider.json +18 -4
  283. package/schema/context_providers_directory/non_collinear_magnetization_context_provider.json +7 -0
  284. package/schema/context_providers_directory/points_grid_data_provider.json +24 -7
  285. package/schema/context_providers_directory/points_path_data_provider.json +7 -3
  286. package/schema/context_providers_directory/points_path_data_provider_rendering.json +32 -0
  287. package/schema/job/base.json +4 -5
  288. package/schema/job/compute.json +1 -1
  289. package/schema/job/compute_property.json +15 -0
  290. package/schema/material/material_properties.json +65 -0
  291. package/schema/material/metadata/boundary_conditions.json +24 -0
  292. package/schema/material/metadata/bulk_properties.json +13 -0
  293. package/schema/material/metadata/slab_properties.json +41 -0
  294. package/schema/material/metadata.json +27 -0
  295. package/schema/material.json +5 -57
  296. package/schema/method.json +7 -1
  297. package/schema/model.json +0 -1
  298. package/schema/models_directory/legacy/any.json +20 -0
  299. package/schema/models_directory/legacy/dft.json +63 -12
  300. package/schema/models_directory/legacy/ml.json +10 -7
  301. package/schema/models_directory/legacy/unknown.json +10 -7
  302. package/schema/software/application.json +4 -35
  303. package/schema/software/application_properties.json +68 -0
  304. package/schema/software/executable.json +5 -23
  305. package/schema/software/executable_properties.json +24 -0
  306. package/schema/software/flavor.json +6 -28
  307. package/schema/software/flavor_properties.json +33 -0
  308. package/schema/software/template.json +2 -26
  309. package/schema/software/template_properties.json +44 -0
  310. package/schema/system/bankable.json +5 -1
  311. package/schema/system/creator.json +4 -1
  312. package/schema/system/creator_account.json +4 -1
  313. package/schema/system/in_set.json +4 -1
  314. package/schema/system/name.json +4 -1
  315. package/schema/system/owner.json +4 -1
  316. package/schema/system/runtime_item.json +17 -0
  317. package/schema/system/runtime_items.json +42 -0
  318. package/schema/workflow/base.json +17 -17
  319. package/schema/workflow/subworkflow/mixin.json +48 -0
  320. package/schema/workflow/subworkflow/unit.json +0 -6
  321. package/schema/workflow/subworkflow.json +4 -31
  322. package/schema/workflow/unit/assertion.json +2 -16
  323. package/schema/workflow/unit/assignment.json +2 -34
  324. package/schema/workflow/unit/base.json +6 -51
  325. package/schema/workflow/unit/condition.json +2 -38
  326. package/schema/workflow/unit/context/_base.json +20 -0
  327. package/schema/workflow/unit/context/_extra_data_material_hash.json +14 -0
  328. package/schema/workflow/unit/context/item/boundaryConditions.json +27 -0
  329. package/schema/workflow/unit/context/item/collinearMagnetization.json +27 -0
  330. package/schema/workflow/unit/context/item/cutoffs.json +20 -0
  331. package/schema/workflow/unit/context/item/dynamics.json +20 -0
  332. package/schema/workflow/unit/context/item/grid.json +31 -0
  333. package/schema/workflow/unit/context/item/hubbard_j.json +20 -0
  334. package/schema/workflow/unit/context/item/hubbard_legacy.json +20 -0
  335. package/schema/workflow/unit/context/item/hubbard_u.json +27 -0
  336. package/schema/workflow/unit/context/item/hubbard_v.json +20 -0
  337. package/schema/workflow/unit/context/item/input.json +47 -0
  338. package/schema/workflow/unit/context/item/mlSettings.json +20 -0
  339. package/schema/workflow/unit/context/item/mlTrainTestSplit.json +20 -0
  340. package/schema/workflow/unit/context/item/neb.json +20 -0
  341. package/schema/workflow/unit/context/item/nonCollinearMagnetization.json +27 -0
  342. package/schema/workflow/unit/context/item/path.json +33 -0
  343. package/schema/workflow/unit/context/item.json +55 -0
  344. package/schema/workflow/unit/execution.json +4 -25
  345. package/schema/workflow/unit/input/_input.json +1 -1
  346. package/schema/workflow/unit/input/_inputItem.json +9 -9
  347. package/schema/workflow/unit/input/_inputItemId.json +3 -1
  348. package/schema/workflow/unit/io/api.json +6 -2
  349. package/schema/workflow/unit/io/db_collection.json +24 -0
  350. package/schema/workflow/unit/io/db_ids.json +22 -0
  351. package/schema/workflow/unit/io/object_storage.json +6 -2
  352. package/schema/workflow/unit/io.json +2 -39
  353. package/schema/workflow/unit/map.json +2 -53
  354. package/schema/workflow/unit/mixins/assertion.json +23 -0
  355. package/schema/workflow/unit/mixins/assignment.json +42 -0
  356. package/schema/workflow/unit/mixins/base.json +50 -0
  357. package/schema/workflow/unit/mixins/condition.json +46 -0
  358. package/schema/workflow/unit/mixins/execution.json +49 -0
  359. package/schema/workflow/unit/mixins/io.json +46 -0
  360. package/schema/workflow/unit/mixins/map.json +61 -0
  361. package/schema/workflow/unit/{processing.json → mixins/processing.json} +3 -7
  362. package/schema/workflow/unit/mixins/reduce.json +44 -0
  363. package/schema/workflow/unit/mixins/subworkflow.json +12 -0
  364. package/schema/workflow/unit/reduce.json +2 -36
  365. package/schema/workflow/unit/subworkflow.json +4 -6
  366. package/schema/workflow/unit.json +1 -19
  367. package/schema/workflow.json +19 -15
  368. package/src/html/index.html +2 -1
  369. package/src/js/esse/JSONSchemasGenerator.ts +2 -1
  370. package/src/js/esse/JSONSchemasInterface.ts +1 -1
  371. package/src/js/esse/schemaUtils.ts +1 -1
  372. package/src/js/esse/server/utils.ts +82 -0
  373. package/src/js/esse/utils.ts +0 -74
  374. package/src/js/scripts/compileTs.ts +1 -1
  375. package/src/js/scripts/setSchemaIds.ts +1 -0
  376. package/src/js/utils/ajv.ts +1 -1
  377. package/dist/js/example/workflow/unit/io/db.json +0 -15
  378. package/dist/js/example/workflow/unit/processing.json +0 -13
  379. package/dist/js/schema/workflow/unit/io/db.json +0 -40
  380. package/dist/js/schema/workflow/unit/processing.json +0 -242
  381. package/example/workflow/unit/io/db.json +0 -15
  382. package/example/workflow/unit/processing.json +0 -13
  383. package/schema/workflow/unit/io/db.json +0 -40
@@ -220,9 +220,36 @@
220
220
  "type": "object",
221
221
  "required": [
222
222
  "basis",
223
- "lattice"
223
+ "lattice",
224
+ "metadata",
225
+ "name"
224
226
  ],
225
227
  "properties": {
228
+ "_id": {
229
+ "description": "entity identity",
230
+ "type": "string"
231
+ },
232
+ "slug": {
233
+ "description": "entity slug",
234
+ "type": "string"
235
+ },
236
+ "systemName": {
237
+ "type": "string"
238
+ },
239
+ "schemaVersion": {
240
+ "description": "entity's schema version. Used to distinct between different schemas.",
241
+ "type": "string",
242
+ "default": "2022.8.16"
243
+ },
244
+ "name": {
245
+ "description": "entity name",
246
+ "type": "string"
247
+ },
248
+ "isDefault": {
249
+ "description": "Identifies that entity is defaultable",
250
+ "type": "boolean",
251
+ "default": false
252
+ },
226
253
  "formula": {
227
254
  "description": "reduced chemical formula",
228
255
  "type": "string"
@@ -946,33 +973,95 @@
946
973
  }
947
974
  }
948
975
  },
949
- "_id": {
950
- "description": "entity identity",
951
- "type": "string"
952
- },
953
- "slug": {
954
- "description": "entity slug",
955
- "type": "string"
956
- },
957
- "systemName": {
958
- "type": "string"
959
- },
960
- "schemaVersion": {
961
- "description": "entity's schema version. Used to distinct between different schemas.",
962
- "type": "string",
963
- "default": "2022.8.16"
964
- },
965
- "name": {
966
- "description": "entity name",
967
- "type": "string"
968
- },
969
- "isDefault": {
970
- "description": "Identifies that entity is defaultable",
971
- "type": "boolean",
972
- "default": false
973
- },
974
976
  "metadata": {
975
- "type": "object"
977
+ "type": "object",
978
+ "default": {},
979
+ "anyOf": [
980
+ {
981
+ "$schema": "http://json-schema.org/draft-07/schema#",
982
+ "title": "material metadata boundary conditions",
983
+ "type": "object",
984
+ "properties": {
985
+ "boundaryConditions": {
986
+ "type": "object",
987
+ "required": [
988
+ "type",
989
+ "offset"
990
+ ],
991
+ "properties": {
992
+ "type": {
993
+ "type": "string",
994
+ "enum": [
995
+ "pbc",
996
+ "bc1",
997
+ "bc2",
998
+ "bc3"
999
+ ],
1000
+ "default": "pbc",
1001
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
1002
+ },
1003
+ "offset": {
1004
+ "type": "number"
1005
+ }
1006
+ }
1007
+ }
1008
+ },
1009
+ "additionalProperties": true
1010
+ },
1011
+ {
1012
+ "$schema": "http://json-schema.org/draft-07/schema#",
1013
+ "title": "material metadata slab properties",
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "isSlab": {
1017
+ "description": "Whether the material was created as a surface slab",
1018
+ "type": "boolean"
1019
+ },
1020
+ "h": {
1021
+ "description": "Miller index h used to generate the slab",
1022
+ "type": "number"
1023
+ },
1024
+ "k": {
1025
+ "description": "Miller index k used to generate the slab",
1026
+ "type": "number"
1027
+ },
1028
+ "l": {
1029
+ "description": "Miller index l used to generate the slab",
1030
+ "type": "number"
1031
+ },
1032
+ "thickness": {
1033
+ "description": "Slab thickness in number of layers",
1034
+ "type": "number"
1035
+ },
1036
+ "vacuumRatio": {
1037
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
1038
+ "type": "number"
1039
+ },
1040
+ "vx": {
1041
+ "description": "Termination vector component along a",
1042
+ "type": "number"
1043
+ },
1044
+ "vy": {
1045
+ "description": "Termination vector component along b",
1046
+ "type": "number"
1047
+ }
1048
+ },
1049
+ "additionalProperties": true
1050
+ },
1051
+ {
1052
+ "$schema": "http://json-schema.org/draft-07/schema#",
1053
+ "title": "material metadata bulk properties",
1054
+ "type": "object",
1055
+ "properties": {
1056
+ "bulkId": {
1057
+ "description": "Source bulk material id used to generate the slab",
1058
+ "type": "string"
1059
+ }
1060
+ },
1061
+ "additionalProperties": true
1062
+ }
1063
+ ],
1064
+ "additionalProperties": true
976
1065
  }
977
1066
  }
978
1067
  },
@@ -1018,9 +1107,36 @@
1018
1107
  "type": "object",
1019
1108
  "required": [
1020
1109
  "basis",
1021
- "lattice"
1110
+ "lattice",
1111
+ "metadata",
1112
+ "name"
1022
1113
  ],
1023
1114
  "properties": {
1115
+ "_id": {
1116
+ "description": "entity identity",
1117
+ "type": "string"
1118
+ },
1119
+ "slug": {
1120
+ "description": "entity slug",
1121
+ "type": "string"
1122
+ },
1123
+ "systemName": {
1124
+ "type": "string"
1125
+ },
1126
+ "schemaVersion": {
1127
+ "description": "entity's schema version. Used to distinct between different schemas.",
1128
+ "type": "string",
1129
+ "default": "2022.8.16"
1130
+ },
1131
+ "name": {
1132
+ "description": "entity name",
1133
+ "type": "string"
1134
+ },
1135
+ "isDefault": {
1136
+ "description": "Identifies that entity is defaultable",
1137
+ "type": "boolean",
1138
+ "default": false
1139
+ },
1024
1140
  "formula": {
1025
1141
  "description": "reduced chemical formula",
1026
1142
  "type": "string"
@@ -1744,33 +1860,95 @@
1744
1860
  }
1745
1861
  }
1746
1862
  },
1747
- "_id": {
1748
- "description": "entity identity",
1749
- "type": "string"
1750
- },
1751
- "slug": {
1752
- "description": "entity slug",
1753
- "type": "string"
1754
- },
1755
- "systemName": {
1756
- "type": "string"
1757
- },
1758
- "schemaVersion": {
1759
- "description": "entity's schema version. Used to distinct between different schemas.",
1760
- "type": "string",
1761
- "default": "2022.8.16"
1762
- },
1763
- "name": {
1764
- "description": "entity name",
1765
- "type": "string"
1766
- },
1767
- "isDefault": {
1768
- "description": "Identifies that entity is defaultable",
1769
- "type": "boolean",
1770
- "default": false
1771
- },
1772
1863
  "metadata": {
1773
- "type": "object"
1864
+ "type": "object",
1865
+ "default": {},
1866
+ "anyOf": [
1867
+ {
1868
+ "$schema": "http://json-schema.org/draft-07/schema#",
1869
+ "title": "material metadata boundary conditions",
1870
+ "type": "object",
1871
+ "properties": {
1872
+ "boundaryConditions": {
1873
+ "type": "object",
1874
+ "required": [
1875
+ "type",
1876
+ "offset"
1877
+ ],
1878
+ "properties": {
1879
+ "type": {
1880
+ "type": "string",
1881
+ "enum": [
1882
+ "pbc",
1883
+ "bc1",
1884
+ "bc2",
1885
+ "bc3"
1886
+ ],
1887
+ "default": "pbc",
1888
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
1889
+ },
1890
+ "offset": {
1891
+ "type": "number"
1892
+ }
1893
+ }
1894
+ }
1895
+ },
1896
+ "additionalProperties": true
1897
+ },
1898
+ {
1899
+ "$schema": "http://json-schema.org/draft-07/schema#",
1900
+ "title": "material metadata slab properties",
1901
+ "type": "object",
1902
+ "properties": {
1903
+ "isSlab": {
1904
+ "description": "Whether the material was created as a surface slab",
1905
+ "type": "boolean"
1906
+ },
1907
+ "h": {
1908
+ "description": "Miller index h used to generate the slab",
1909
+ "type": "number"
1910
+ },
1911
+ "k": {
1912
+ "description": "Miller index k used to generate the slab",
1913
+ "type": "number"
1914
+ },
1915
+ "l": {
1916
+ "description": "Miller index l used to generate the slab",
1917
+ "type": "number"
1918
+ },
1919
+ "thickness": {
1920
+ "description": "Slab thickness in number of layers",
1921
+ "type": "number"
1922
+ },
1923
+ "vacuumRatio": {
1924
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
1925
+ "type": "number"
1926
+ },
1927
+ "vx": {
1928
+ "description": "Termination vector component along a",
1929
+ "type": "number"
1930
+ },
1931
+ "vy": {
1932
+ "description": "Termination vector component along b",
1933
+ "type": "number"
1934
+ }
1935
+ },
1936
+ "additionalProperties": true
1937
+ },
1938
+ {
1939
+ "$schema": "http://json-schema.org/draft-07/schema#",
1940
+ "title": "material metadata bulk properties",
1941
+ "type": "object",
1942
+ "properties": {
1943
+ "bulkId": {
1944
+ "description": "Source bulk material id used to generate the slab",
1945
+ "type": "string"
1946
+ }
1947
+ },
1948
+ "additionalProperties": true
1949
+ }
1950
+ ],
1951
+ "additionalProperties": true
1774
1952
  }
1775
1953
  }
1776
1954
  }
@@ -2037,9 +2215,36 @@
2037
2215
  "type": "object",
2038
2216
  "required": [
2039
2217
  "basis",
2040
- "lattice"
2218
+ "lattice",
2219
+ "metadata",
2220
+ "name"
2041
2221
  ],
2042
2222
  "properties": {
2223
+ "_id": {
2224
+ "description": "entity identity",
2225
+ "type": "string"
2226
+ },
2227
+ "slug": {
2228
+ "description": "entity slug",
2229
+ "type": "string"
2230
+ },
2231
+ "systemName": {
2232
+ "type": "string"
2233
+ },
2234
+ "schemaVersion": {
2235
+ "description": "entity's schema version. Used to distinct between different schemas.",
2236
+ "type": "string",
2237
+ "default": "2022.8.16"
2238
+ },
2239
+ "name": {
2240
+ "description": "entity name",
2241
+ "type": "string"
2242
+ },
2243
+ "isDefault": {
2244
+ "description": "Identifies that entity is defaultable",
2245
+ "type": "boolean",
2246
+ "default": false
2247
+ },
2043
2248
  "formula": {
2044
2249
  "description": "reduced chemical formula",
2045
2250
  "type": "string"
@@ -2763,35 +2968,97 @@
2763
2968
  }
2764
2969
  }
2765
2970
  },
2766
- "_id": {
2767
- "description": "entity identity",
2768
- "type": "string"
2769
- },
2770
- "slug": {
2771
- "description": "entity slug",
2772
- "type": "string"
2773
- },
2774
- "systemName": {
2775
- "type": "string"
2776
- },
2777
- "schemaVersion": {
2778
- "description": "entity's schema version. Used to distinct between different schemas.",
2779
- "type": "string",
2780
- "default": "2022.8.16"
2781
- },
2782
- "name": {
2783
- "description": "entity name",
2784
- "type": "string"
2785
- },
2786
- "isDefault": {
2787
- "description": "Identifies that entity is defaultable",
2788
- "type": "boolean",
2789
- "default": false
2790
- },
2791
2971
  "metadata": {
2792
- "type": "object"
2793
- }
2794
- }
2972
+ "type": "object",
2973
+ "default": {},
2974
+ "anyOf": [
2975
+ {
2976
+ "$schema": "http://json-schema.org/draft-07/schema#",
2977
+ "title": "material metadata boundary conditions",
2978
+ "type": "object",
2979
+ "properties": {
2980
+ "boundaryConditions": {
2981
+ "type": "object",
2982
+ "required": [
2983
+ "type",
2984
+ "offset"
2985
+ ],
2986
+ "properties": {
2987
+ "type": {
2988
+ "type": "string",
2989
+ "enum": [
2990
+ "pbc",
2991
+ "bc1",
2992
+ "bc2",
2993
+ "bc3"
2994
+ ],
2995
+ "default": "pbc",
2996
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
2997
+ },
2998
+ "offset": {
2999
+ "type": "number"
3000
+ }
3001
+ }
3002
+ }
3003
+ },
3004
+ "additionalProperties": true
3005
+ },
3006
+ {
3007
+ "$schema": "http://json-schema.org/draft-07/schema#",
3008
+ "title": "material metadata slab properties",
3009
+ "type": "object",
3010
+ "properties": {
3011
+ "isSlab": {
3012
+ "description": "Whether the material was created as a surface slab",
3013
+ "type": "boolean"
3014
+ },
3015
+ "h": {
3016
+ "description": "Miller index h used to generate the slab",
3017
+ "type": "number"
3018
+ },
3019
+ "k": {
3020
+ "description": "Miller index k used to generate the slab",
3021
+ "type": "number"
3022
+ },
3023
+ "l": {
3024
+ "description": "Miller index l used to generate the slab",
3025
+ "type": "number"
3026
+ },
3027
+ "thickness": {
3028
+ "description": "Slab thickness in number of layers",
3029
+ "type": "number"
3030
+ },
3031
+ "vacuumRatio": {
3032
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
3033
+ "type": "number"
3034
+ },
3035
+ "vx": {
3036
+ "description": "Termination vector component along a",
3037
+ "type": "number"
3038
+ },
3039
+ "vy": {
3040
+ "description": "Termination vector component along b",
3041
+ "type": "number"
3042
+ }
3043
+ },
3044
+ "additionalProperties": true
3045
+ },
3046
+ {
3047
+ "$schema": "http://json-schema.org/draft-07/schema#",
3048
+ "title": "material metadata bulk properties",
3049
+ "type": "object",
3050
+ "properties": {
3051
+ "bulkId": {
3052
+ "description": "Source bulk material id used to generate the slab",
3053
+ "type": "string"
3054
+ }
3055
+ },
3056
+ "additionalProperties": true
3057
+ }
3058
+ ],
3059
+ "additionalProperties": true
3060
+ }
3061
+ }
2795
3062
  },
2796
3063
  "use_conventional_cell": {
2797
3064
  "type": "boolean",
@@ -2835,9 +3102,36 @@
2835
3102
  "type": "object",
2836
3103
  "required": [
2837
3104
  "basis",
2838
- "lattice"
3105
+ "lattice",
3106
+ "metadata",
3107
+ "name"
2839
3108
  ],
2840
3109
  "properties": {
3110
+ "_id": {
3111
+ "description": "entity identity",
3112
+ "type": "string"
3113
+ },
3114
+ "slug": {
3115
+ "description": "entity slug",
3116
+ "type": "string"
3117
+ },
3118
+ "systemName": {
3119
+ "type": "string"
3120
+ },
3121
+ "schemaVersion": {
3122
+ "description": "entity's schema version. Used to distinct between different schemas.",
3123
+ "type": "string",
3124
+ "default": "2022.8.16"
3125
+ },
3126
+ "name": {
3127
+ "description": "entity name",
3128
+ "type": "string"
3129
+ },
3130
+ "isDefault": {
3131
+ "description": "Identifies that entity is defaultable",
3132
+ "type": "boolean",
3133
+ "default": false
3134
+ },
2841
3135
  "formula": {
2842
3136
  "description": "reduced chemical formula",
2843
3137
  "type": "string"
@@ -3561,33 +3855,95 @@
3561
3855
  }
3562
3856
  }
3563
3857
  },
3564
- "_id": {
3565
- "description": "entity identity",
3566
- "type": "string"
3567
- },
3568
- "slug": {
3569
- "description": "entity slug",
3570
- "type": "string"
3571
- },
3572
- "systemName": {
3573
- "type": "string"
3574
- },
3575
- "schemaVersion": {
3576
- "description": "entity's schema version. Used to distinct between different schemas.",
3577
- "type": "string",
3578
- "default": "2022.8.16"
3579
- },
3580
- "name": {
3581
- "description": "entity name",
3582
- "type": "string"
3583
- },
3584
- "isDefault": {
3585
- "description": "Identifies that entity is defaultable",
3586
- "type": "boolean",
3587
- "default": false
3588
- },
3589
3858
  "metadata": {
3590
- "type": "object"
3859
+ "type": "object",
3860
+ "default": {},
3861
+ "anyOf": [
3862
+ {
3863
+ "$schema": "http://json-schema.org/draft-07/schema#",
3864
+ "title": "material metadata boundary conditions",
3865
+ "type": "object",
3866
+ "properties": {
3867
+ "boundaryConditions": {
3868
+ "type": "object",
3869
+ "required": [
3870
+ "type",
3871
+ "offset"
3872
+ ],
3873
+ "properties": {
3874
+ "type": {
3875
+ "type": "string",
3876
+ "enum": [
3877
+ "pbc",
3878
+ "bc1",
3879
+ "bc2",
3880
+ "bc3"
3881
+ ],
3882
+ "default": "pbc",
3883
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
3884
+ },
3885
+ "offset": {
3886
+ "type": "number"
3887
+ }
3888
+ }
3889
+ }
3890
+ },
3891
+ "additionalProperties": true
3892
+ },
3893
+ {
3894
+ "$schema": "http://json-schema.org/draft-07/schema#",
3895
+ "title": "material metadata slab properties",
3896
+ "type": "object",
3897
+ "properties": {
3898
+ "isSlab": {
3899
+ "description": "Whether the material was created as a surface slab",
3900
+ "type": "boolean"
3901
+ },
3902
+ "h": {
3903
+ "description": "Miller index h used to generate the slab",
3904
+ "type": "number"
3905
+ },
3906
+ "k": {
3907
+ "description": "Miller index k used to generate the slab",
3908
+ "type": "number"
3909
+ },
3910
+ "l": {
3911
+ "description": "Miller index l used to generate the slab",
3912
+ "type": "number"
3913
+ },
3914
+ "thickness": {
3915
+ "description": "Slab thickness in number of layers",
3916
+ "type": "number"
3917
+ },
3918
+ "vacuumRatio": {
3919
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
3920
+ "type": "number"
3921
+ },
3922
+ "vx": {
3923
+ "description": "Termination vector component along a",
3924
+ "type": "number"
3925
+ },
3926
+ "vy": {
3927
+ "description": "Termination vector component along b",
3928
+ "type": "number"
3929
+ }
3930
+ },
3931
+ "additionalProperties": true
3932
+ },
3933
+ {
3934
+ "$schema": "http://json-schema.org/draft-07/schema#",
3935
+ "title": "material metadata bulk properties",
3936
+ "type": "object",
3937
+ "properties": {
3938
+ "bulkId": {
3939
+ "description": "Source bulk material id used to generate the slab",
3940
+ "type": "string"
3941
+ }
3942
+ },
3943
+ "additionalProperties": true
3944
+ }
3945
+ ],
3946
+ "additionalProperties": true
3591
3947
  }
3592
3948
  }
3593
3949
  }
@@ -3649,9 +4005,36 @@
3649
4005
  "type": "object",
3650
4006
  "required": [
3651
4007
  "basis",
3652
- "lattice"
4008
+ "lattice",
4009
+ "metadata",
4010
+ "name"
3653
4011
  ],
3654
4012
  "properties": {
4013
+ "_id": {
4014
+ "description": "entity identity",
4015
+ "type": "string"
4016
+ },
4017
+ "slug": {
4018
+ "description": "entity slug",
4019
+ "type": "string"
4020
+ },
4021
+ "systemName": {
4022
+ "type": "string"
4023
+ },
4024
+ "schemaVersion": {
4025
+ "description": "entity's schema version. Used to distinct between different schemas.",
4026
+ "type": "string",
4027
+ "default": "2022.8.16"
4028
+ },
4029
+ "name": {
4030
+ "description": "entity name",
4031
+ "type": "string"
4032
+ },
4033
+ "isDefault": {
4034
+ "description": "Identifies that entity is defaultable",
4035
+ "type": "boolean",
4036
+ "default": false
4037
+ },
3655
4038
  "formula": {
3656
4039
  "description": "reduced chemical formula",
3657
4040
  "type": "string"
@@ -4375,33 +4758,95 @@
4375
4758
  }
4376
4759
  }
4377
4760
  },
4378
- "_id": {
4379
- "description": "entity identity",
4380
- "type": "string"
4381
- },
4382
- "slug": {
4383
- "description": "entity slug",
4384
- "type": "string"
4385
- },
4386
- "systemName": {
4387
- "type": "string"
4388
- },
4389
- "schemaVersion": {
4390
- "description": "entity's schema version. Used to distinct between different schemas.",
4391
- "type": "string",
4392
- "default": "2022.8.16"
4393
- },
4394
- "name": {
4395
- "description": "entity name",
4396
- "type": "string"
4397
- },
4398
- "isDefault": {
4399
- "description": "Identifies that entity is defaultable",
4400
- "type": "boolean",
4401
- "default": false
4402
- },
4403
4761
  "metadata": {
4404
- "type": "object"
4762
+ "type": "object",
4763
+ "default": {},
4764
+ "anyOf": [
4765
+ {
4766
+ "$schema": "http://json-schema.org/draft-07/schema#",
4767
+ "title": "material metadata boundary conditions",
4768
+ "type": "object",
4769
+ "properties": {
4770
+ "boundaryConditions": {
4771
+ "type": "object",
4772
+ "required": [
4773
+ "type",
4774
+ "offset"
4775
+ ],
4776
+ "properties": {
4777
+ "type": {
4778
+ "type": "string",
4779
+ "enum": [
4780
+ "pbc",
4781
+ "bc1",
4782
+ "bc2",
4783
+ "bc3"
4784
+ ],
4785
+ "default": "pbc",
4786
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
4787
+ },
4788
+ "offset": {
4789
+ "type": "number"
4790
+ }
4791
+ }
4792
+ }
4793
+ },
4794
+ "additionalProperties": true
4795
+ },
4796
+ {
4797
+ "$schema": "http://json-schema.org/draft-07/schema#",
4798
+ "title": "material metadata slab properties",
4799
+ "type": "object",
4800
+ "properties": {
4801
+ "isSlab": {
4802
+ "description": "Whether the material was created as a surface slab",
4803
+ "type": "boolean"
4804
+ },
4805
+ "h": {
4806
+ "description": "Miller index h used to generate the slab",
4807
+ "type": "number"
4808
+ },
4809
+ "k": {
4810
+ "description": "Miller index k used to generate the slab",
4811
+ "type": "number"
4812
+ },
4813
+ "l": {
4814
+ "description": "Miller index l used to generate the slab",
4815
+ "type": "number"
4816
+ },
4817
+ "thickness": {
4818
+ "description": "Slab thickness in number of layers",
4819
+ "type": "number"
4820
+ },
4821
+ "vacuumRatio": {
4822
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
4823
+ "type": "number"
4824
+ },
4825
+ "vx": {
4826
+ "description": "Termination vector component along a",
4827
+ "type": "number"
4828
+ },
4829
+ "vy": {
4830
+ "description": "Termination vector component along b",
4831
+ "type": "number"
4832
+ }
4833
+ },
4834
+ "additionalProperties": true
4835
+ },
4836
+ {
4837
+ "$schema": "http://json-schema.org/draft-07/schema#",
4838
+ "title": "material metadata bulk properties",
4839
+ "type": "object",
4840
+ "properties": {
4841
+ "bulkId": {
4842
+ "description": "Source bulk material id used to generate the slab",
4843
+ "type": "string"
4844
+ }
4845
+ },
4846
+ "additionalProperties": true
4847
+ }
4848
+ ],
4849
+ "additionalProperties": true
4405
4850
  }
4406
4851
  }
4407
4852
  },
@@ -4693,9 +5138,36 @@
4693
5138
  "type": "object",
4694
5139
  "required": [
4695
5140
  "basis",
4696
- "lattice"
5141
+ "lattice",
5142
+ "metadata",
5143
+ "name"
4697
5144
  ],
4698
5145
  "properties": {
5146
+ "_id": {
5147
+ "description": "entity identity",
5148
+ "type": "string"
5149
+ },
5150
+ "slug": {
5151
+ "description": "entity slug",
5152
+ "type": "string"
5153
+ },
5154
+ "systemName": {
5155
+ "type": "string"
5156
+ },
5157
+ "schemaVersion": {
5158
+ "description": "entity's schema version. Used to distinct between different schemas.",
5159
+ "type": "string",
5160
+ "default": "2022.8.16"
5161
+ },
5162
+ "name": {
5163
+ "description": "entity name",
5164
+ "type": "string"
5165
+ },
5166
+ "isDefault": {
5167
+ "description": "Identifies that entity is defaultable",
5168
+ "type": "boolean",
5169
+ "default": false
5170
+ },
4699
5171
  "formula": {
4700
5172
  "description": "reduced chemical formula",
4701
5173
  "type": "string"
@@ -5419,33 +5891,95 @@
5419
5891
  }
5420
5892
  }
5421
5893
  },
5422
- "_id": {
5423
- "description": "entity identity",
5424
- "type": "string"
5425
- },
5426
- "slug": {
5427
- "description": "entity slug",
5428
- "type": "string"
5429
- },
5430
- "systemName": {
5431
- "type": "string"
5432
- },
5433
- "schemaVersion": {
5434
- "description": "entity's schema version. Used to distinct between different schemas.",
5435
- "type": "string",
5436
- "default": "2022.8.16"
5437
- },
5438
- "name": {
5439
- "description": "entity name",
5440
- "type": "string"
5441
- },
5442
- "isDefault": {
5443
- "description": "Identifies that entity is defaultable",
5444
- "type": "boolean",
5445
- "default": false
5446
- },
5447
5894
  "metadata": {
5448
- "type": "object"
5895
+ "type": "object",
5896
+ "default": {},
5897
+ "anyOf": [
5898
+ {
5899
+ "$schema": "http://json-schema.org/draft-07/schema#",
5900
+ "title": "material metadata boundary conditions",
5901
+ "type": "object",
5902
+ "properties": {
5903
+ "boundaryConditions": {
5904
+ "type": "object",
5905
+ "required": [
5906
+ "type",
5907
+ "offset"
5908
+ ],
5909
+ "properties": {
5910
+ "type": {
5911
+ "type": "string",
5912
+ "enum": [
5913
+ "pbc",
5914
+ "bc1",
5915
+ "bc2",
5916
+ "bc3"
5917
+ ],
5918
+ "default": "pbc",
5919
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
5920
+ },
5921
+ "offset": {
5922
+ "type": "number"
5923
+ }
5924
+ }
5925
+ }
5926
+ },
5927
+ "additionalProperties": true
5928
+ },
5929
+ {
5930
+ "$schema": "http://json-schema.org/draft-07/schema#",
5931
+ "title": "material metadata slab properties",
5932
+ "type": "object",
5933
+ "properties": {
5934
+ "isSlab": {
5935
+ "description": "Whether the material was created as a surface slab",
5936
+ "type": "boolean"
5937
+ },
5938
+ "h": {
5939
+ "description": "Miller index h used to generate the slab",
5940
+ "type": "number"
5941
+ },
5942
+ "k": {
5943
+ "description": "Miller index k used to generate the slab",
5944
+ "type": "number"
5945
+ },
5946
+ "l": {
5947
+ "description": "Miller index l used to generate the slab",
5948
+ "type": "number"
5949
+ },
5950
+ "thickness": {
5951
+ "description": "Slab thickness in number of layers",
5952
+ "type": "number"
5953
+ },
5954
+ "vacuumRatio": {
5955
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
5956
+ "type": "number"
5957
+ },
5958
+ "vx": {
5959
+ "description": "Termination vector component along a",
5960
+ "type": "number"
5961
+ },
5962
+ "vy": {
5963
+ "description": "Termination vector component along b",
5964
+ "type": "number"
5965
+ }
5966
+ },
5967
+ "additionalProperties": true
5968
+ },
5969
+ {
5970
+ "$schema": "http://json-schema.org/draft-07/schema#",
5971
+ "title": "material metadata bulk properties",
5972
+ "type": "object",
5973
+ "properties": {
5974
+ "bulkId": {
5975
+ "description": "Source bulk material id used to generate the slab",
5976
+ "type": "string"
5977
+ }
5978
+ },
5979
+ "additionalProperties": true
5980
+ }
5981
+ ],
5982
+ "additionalProperties": true
5449
5983
  }
5450
5984
  }
5451
5985
  }