@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
@@ -221,9 +221,36 @@
221
221
  "type": "object",
222
222
  "required": [
223
223
  "basis",
224
- "lattice"
224
+ "lattice",
225
+ "metadata",
226
+ "name"
225
227
  ],
226
228
  "properties": {
229
+ "_id": {
230
+ "description": "entity identity",
231
+ "type": "string"
232
+ },
233
+ "slug": {
234
+ "description": "entity slug",
235
+ "type": "string"
236
+ },
237
+ "systemName": {
238
+ "type": "string"
239
+ },
240
+ "schemaVersion": {
241
+ "description": "entity's schema version. Used to distinct between different schemas.",
242
+ "type": "string",
243
+ "default": "2022.8.16"
244
+ },
245
+ "name": {
246
+ "description": "entity name",
247
+ "type": "string"
248
+ },
249
+ "isDefault": {
250
+ "description": "Identifies that entity is defaultable",
251
+ "type": "boolean",
252
+ "default": false
253
+ },
227
254
  "formula": {
228
255
  "description": "reduced chemical formula",
229
256
  "type": "string"
@@ -947,33 +974,95 @@
947
974
  }
948
975
  }
949
976
  },
950
- "_id": {
951
- "description": "entity identity",
952
- "type": "string"
953
- },
954
- "slug": {
955
- "description": "entity slug",
956
- "type": "string"
957
- },
958
- "systemName": {
959
- "type": "string"
960
- },
961
- "schemaVersion": {
962
- "description": "entity's schema version. Used to distinct between different schemas.",
963
- "type": "string",
964
- "default": "2022.8.16"
965
- },
966
- "name": {
967
- "description": "entity name",
968
- "type": "string"
969
- },
970
- "isDefault": {
971
- "description": "Identifies that entity is defaultable",
972
- "type": "boolean",
973
- "default": false
974
- },
975
977
  "metadata": {
976
- "type": "object"
978
+ "type": "object",
979
+ "default": {},
980
+ "anyOf": [
981
+ {
982
+ "$schema": "http://json-schema.org/draft-07/schema#",
983
+ "title": "material metadata boundary conditions",
984
+ "type": "object",
985
+ "properties": {
986
+ "boundaryConditions": {
987
+ "type": "object",
988
+ "required": [
989
+ "type",
990
+ "offset"
991
+ ],
992
+ "properties": {
993
+ "type": {
994
+ "type": "string",
995
+ "enum": [
996
+ "pbc",
997
+ "bc1",
998
+ "bc2",
999
+ "bc3"
1000
+ ],
1001
+ "default": "pbc",
1002
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
1003
+ },
1004
+ "offset": {
1005
+ "type": "number"
1006
+ }
1007
+ }
1008
+ }
1009
+ },
1010
+ "additionalProperties": true
1011
+ },
1012
+ {
1013
+ "$schema": "http://json-schema.org/draft-07/schema#",
1014
+ "title": "material metadata slab properties",
1015
+ "type": "object",
1016
+ "properties": {
1017
+ "isSlab": {
1018
+ "description": "Whether the material was created as a surface slab",
1019
+ "type": "boolean"
1020
+ },
1021
+ "h": {
1022
+ "description": "Miller index h used to generate the slab",
1023
+ "type": "number"
1024
+ },
1025
+ "k": {
1026
+ "description": "Miller index k used to generate the slab",
1027
+ "type": "number"
1028
+ },
1029
+ "l": {
1030
+ "description": "Miller index l used to generate the slab",
1031
+ "type": "number"
1032
+ },
1033
+ "thickness": {
1034
+ "description": "Slab thickness in number of layers",
1035
+ "type": "number"
1036
+ },
1037
+ "vacuumRatio": {
1038
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
1039
+ "type": "number"
1040
+ },
1041
+ "vx": {
1042
+ "description": "Termination vector component along a",
1043
+ "type": "number"
1044
+ },
1045
+ "vy": {
1046
+ "description": "Termination vector component along b",
1047
+ "type": "number"
1048
+ }
1049
+ },
1050
+ "additionalProperties": true
1051
+ },
1052
+ {
1053
+ "$schema": "http://json-schema.org/draft-07/schema#",
1054
+ "title": "material metadata bulk properties",
1055
+ "type": "object",
1056
+ "properties": {
1057
+ "bulkId": {
1058
+ "description": "Source bulk material id used to generate the slab",
1059
+ "type": "string"
1060
+ }
1061
+ },
1062
+ "additionalProperties": true
1063
+ }
1064
+ ],
1065
+ "additionalProperties": true
977
1066
  }
978
1067
  }
979
1068
  },
@@ -1019,9 +1108,36 @@
1019
1108
  "type": "object",
1020
1109
  "required": [
1021
1110
  "basis",
1022
- "lattice"
1111
+ "lattice",
1112
+ "metadata",
1113
+ "name"
1023
1114
  ],
1024
1115
  "properties": {
1116
+ "_id": {
1117
+ "description": "entity identity",
1118
+ "type": "string"
1119
+ },
1120
+ "slug": {
1121
+ "description": "entity slug",
1122
+ "type": "string"
1123
+ },
1124
+ "systemName": {
1125
+ "type": "string"
1126
+ },
1127
+ "schemaVersion": {
1128
+ "description": "entity's schema version. Used to distinct between different schemas.",
1129
+ "type": "string",
1130
+ "default": "2022.8.16"
1131
+ },
1132
+ "name": {
1133
+ "description": "entity name",
1134
+ "type": "string"
1135
+ },
1136
+ "isDefault": {
1137
+ "description": "Identifies that entity is defaultable",
1138
+ "type": "boolean",
1139
+ "default": false
1140
+ },
1025
1141
  "formula": {
1026
1142
  "description": "reduced chemical formula",
1027
1143
  "type": "string"
@@ -1745,33 +1861,95 @@
1745
1861
  }
1746
1862
  }
1747
1863
  },
1748
- "_id": {
1749
- "description": "entity identity",
1750
- "type": "string"
1751
- },
1752
- "slug": {
1753
- "description": "entity slug",
1754
- "type": "string"
1755
- },
1756
- "systemName": {
1757
- "type": "string"
1758
- },
1759
- "schemaVersion": {
1760
- "description": "entity's schema version. Used to distinct between different schemas.",
1761
- "type": "string",
1762
- "default": "2022.8.16"
1763
- },
1764
- "name": {
1765
- "description": "entity name",
1766
- "type": "string"
1767
- },
1768
- "isDefault": {
1769
- "description": "Identifies that entity is defaultable",
1770
- "type": "boolean",
1771
- "default": false
1772
- },
1773
1864
  "metadata": {
1774
- "type": "object"
1865
+ "type": "object",
1866
+ "default": {},
1867
+ "anyOf": [
1868
+ {
1869
+ "$schema": "http://json-schema.org/draft-07/schema#",
1870
+ "title": "material metadata boundary conditions",
1871
+ "type": "object",
1872
+ "properties": {
1873
+ "boundaryConditions": {
1874
+ "type": "object",
1875
+ "required": [
1876
+ "type",
1877
+ "offset"
1878
+ ],
1879
+ "properties": {
1880
+ "type": {
1881
+ "type": "string",
1882
+ "enum": [
1883
+ "pbc",
1884
+ "bc1",
1885
+ "bc2",
1886
+ "bc3"
1887
+ ],
1888
+ "default": "pbc",
1889
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
1890
+ },
1891
+ "offset": {
1892
+ "type": "number"
1893
+ }
1894
+ }
1895
+ }
1896
+ },
1897
+ "additionalProperties": true
1898
+ },
1899
+ {
1900
+ "$schema": "http://json-schema.org/draft-07/schema#",
1901
+ "title": "material metadata slab properties",
1902
+ "type": "object",
1903
+ "properties": {
1904
+ "isSlab": {
1905
+ "description": "Whether the material was created as a surface slab",
1906
+ "type": "boolean"
1907
+ },
1908
+ "h": {
1909
+ "description": "Miller index h used to generate the slab",
1910
+ "type": "number"
1911
+ },
1912
+ "k": {
1913
+ "description": "Miller index k used to generate the slab",
1914
+ "type": "number"
1915
+ },
1916
+ "l": {
1917
+ "description": "Miller index l used to generate the slab",
1918
+ "type": "number"
1919
+ },
1920
+ "thickness": {
1921
+ "description": "Slab thickness in number of layers",
1922
+ "type": "number"
1923
+ },
1924
+ "vacuumRatio": {
1925
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
1926
+ "type": "number"
1927
+ },
1928
+ "vx": {
1929
+ "description": "Termination vector component along a",
1930
+ "type": "number"
1931
+ },
1932
+ "vy": {
1933
+ "description": "Termination vector component along b",
1934
+ "type": "number"
1935
+ }
1936
+ },
1937
+ "additionalProperties": true
1938
+ },
1939
+ {
1940
+ "$schema": "http://json-schema.org/draft-07/schema#",
1941
+ "title": "material metadata bulk properties",
1942
+ "type": "object",
1943
+ "properties": {
1944
+ "bulkId": {
1945
+ "description": "Source bulk material id used to generate the slab",
1946
+ "type": "string"
1947
+ }
1948
+ },
1949
+ "additionalProperties": true
1950
+ }
1951
+ ],
1952
+ "additionalProperties": true
1775
1953
  }
1776
1954
  }
1777
1955
  }
@@ -2038,9 +2216,36 @@
2038
2216
  "type": "object",
2039
2217
  "required": [
2040
2218
  "basis",
2041
- "lattice"
2219
+ "lattice",
2220
+ "metadata",
2221
+ "name"
2042
2222
  ],
2043
2223
  "properties": {
2224
+ "_id": {
2225
+ "description": "entity identity",
2226
+ "type": "string"
2227
+ },
2228
+ "slug": {
2229
+ "description": "entity slug",
2230
+ "type": "string"
2231
+ },
2232
+ "systemName": {
2233
+ "type": "string"
2234
+ },
2235
+ "schemaVersion": {
2236
+ "description": "entity's schema version. Used to distinct between different schemas.",
2237
+ "type": "string",
2238
+ "default": "2022.8.16"
2239
+ },
2240
+ "name": {
2241
+ "description": "entity name",
2242
+ "type": "string"
2243
+ },
2244
+ "isDefault": {
2245
+ "description": "Identifies that entity is defaultable",
2246
+ "type": "boolean",
2247
+ "default": false
2248
+ },
2044
2249
  "formula": {
2045
2250
  "description": "reduced chemical formula",
2046
2251
  "type": "string"
@@ -2764,35 +2969,97 @@
2764
2969
  }
2765
2970
  }
2766
2971
  },
2767
- "_id": {
2768
- "description": "entity identity",
2769
- "type": "string"
2770
- },
2771
- "slug": {
2772
- "description": "entity slug",
2773
- "type": "string"
2774
- },
2775
- "systemName": {
2776
- "type": "string"
2777
- },
2778
- "schemaVersion": {
2779
- "description": "entity's schema version. Used to distinct between different schemas.",
2780
- "type": "string",
2781
- "default": "2022.8.16"
2782
- },
2783
- "name": {
2784
- "description": "entity name",
2785
- "type": "string"
2786
- },
2787
- "isDefault": {
2788
- "description": "Identifies that entity is defaultable",
2789
- "type": "boolean",
2790
- "default": false
2791
- },
2792
2972
  "metadata": {
2793
- "type": "object"
2794
- }
2795
- }
2973
+ "type": "object",
2974
+ "default": {},
2975
+ "anyOf": [
2976
+ {
2977
+ "$schema": "http://json-schema.org/draft-07/schema#",
2978
+ "title": "material metadata boundary conditions",
2979
+ "type": "object",
2980
+ "properties": {
2981
+ "boundaryConditions": {
2982
+ "type": "object",
2983
+ "required": [
2984
+ "type",
2985
+ "offset"
2986
+ ],
2987
+ "properties": {
2988
+ "type": {
2989
+ "type": "string",
2990
+ "enum": [
2991
+ "pbc",
2992
+ "bc1",
2993
+ "bc2",
2994
+ "bc3"
2995
+ ],
2996
+ "default": "pbc",
2997
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
2998
+ },
2999
+ "offset": {
3000
+ "type": "number"
3001
+ }
3002
+ }
3003
+ }
3004
+ },
3005
+ "additionalProperties": true
3006
+ },
3007
+ {
3008
+ "$schema": "http://json-schema.org/draft-07/schema#",
3009
+ "title": "material metadata slab properties",
3010
+ "type": "object",
3011
+ "properties": {
3012
+ "isSlab": {
3013
+ "description": "Whether the material was created as a surface slab",
3014
+ "type": "boolean"
3015
+ },
3016
+ "h": {
3017
+ "description": "Miller index h used to generate the slab",
3018
+ "type": "number"
3019
+ },
3020
+ "k": {
3021
+ "description": "Miller index k used to generate the slab",
3022
+ "type": "number"
3023
+ },
3024
+ "l": {
3025
+ "description": "Miller index l used to generate the slab",
3026
+ "type": "number"
3027
+ },
3028
+ "thickness": {
3029
+ "description": "Slab thickness in number of layers",
3030
+ "type": "number"
3031
+ },
3032
+ "vacuumRatio": {
3033
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
3034
+ "type": "number"
3035
+ },
3036
+ "vx": {
3037
+ "description": "Termination vector component along a",
3038
+ "type": "number"
3039
+ },
3040
+ "vy": {
3041
+ "description": "Termination vector component along b",
3042
+ "type": "number"
3043
+ }
3044
+ },
3045
+ "additionalProperties": true
3046
+ },
3047
+ {
3048
+ "$schema": "http://json-schema.org/draft-07/schema#",
3049
+ "title": "material metadata bulk properties",
3050
+ "type": "object",
3051
+ "properties": {
3052
+ "bulkId": {
3053
+ "description": "Source bulk material id used to generate the slab",
3054
+ "type": "string"
3055
+ }
3056
+ },
3057
+ "additionalProperties": true
3058
+ }
3059
+ ],
3060
+ "additionalProperties": true
3061
+ }
3062
+ }
2796
3063
  },
2797
3064
  "use_conventional_cell": {
2798
3065
  "type": "boolean",
@@ -2836,9 +3103,36 @@
2836
3103
  "type": "object",
2837
3104
  "required": [
2838
3105
  "basis",
2839
- "lattice"
3106
+ "lattice",
3107
+ "metadata",
3108
+ "name"
2840
3109
  ],
2841
3110
  "properties": {
3111
+ "_id": {
3112
+ "description": "entity identity",
3113
+ "type": "string"
3114
+ },
3115
+ "slug": {
3116
+ "description": "entity slug",
3117
+ "type": "string"
3118
+ },
3119
+ "systemName": {
3120
+ "type": "string"
3121
+ },
3122
+ "schemaVersion": {
3123
+ "description": "entity's schema version. Used to distinct between different schemas.",
3124
+ "type": "string",
3125
+ "default": "2022.8.16"
3126
+ },
3127
+ "name": {
3128
+ "description": "entity name",
3129
+ "type": "string"
3130
+ },
3131
+ "isDefault": {
3132
+ "description": "Identifies that entity is defaultable",
3133
+ "type": "boolean",
3134
+ "default": false
3135
+ },
2842
3136
  "formula": {
2843
3137
  "description": "reduced chemical formula",
2844
3138
  "type": "string"
@@ -3562,33 +3856,95 @@
3562
3856
  }
3563
3857
  }
3564
3858
  },
3565
- "_id": {
3566
- "description": "entity identity",
3567
- "type": "string"
3568
- },
3569
- "slug": {
3570
- "description": "entity slug",
3571
- "type": "string"
3572
- },
3573
- "systemName": {
3574
- "type": "string"
3575
- },
3576
- "schemaVersion": {
3577
- "description": "entity's schema version. Used to distinct between different schemas.",
3578
- "type": "string",
3579
- "default": "2022.8.16"
3580
- },
3581
- "name": {
3582
- "description": "entity name",
3583
- "type": "string"
3584
- },
3585
- "isDefault": {
3586
- "description": "Identifies that entity is defaultable",
3587
- "type": "boolean",
3588
- "default": false
3589
- },
3590
3859
  "metadata": {
3591
- "type": "object"
3860
+ "type": "object",
3861
+ "default": {},
3862
+ "anyOf": [
3863
+ {
3864
+ "$schema": "http://json-schema.org/draft-07/schema#",
3865
+ "title": "material metadata boundary conditions",
3866
+ "type": "object",
3867
+ "properties": {
3868
+ "boundaryConditions": {
3869
+ "type": "object",
3870
+ "required": [
3871
+ "type",
3872
+ "offset"
3873
+ ],
3874
+ "properties": {
3875
+ "type": {
3876
+ "type": "string",
3877
+ "enum": [
3878
+ "pbc",
3879
+ "bc1",
3880
+ "bc2",
3881
+ "bc3"
3882
+ ],
3883
+ "default": "pbc",
3884
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
3885
+ },
3886
+ "offset": {
3887
+ "type": "number"
3888
+ }
3889
+ }
3890
+ }
3891
+ },
3892
+ "additionalProperties": true
3893
+ },
3894
+ {
3895
+ "$schema": "http://json-schema.org/draft-07/schema#",
3896
+ "title": "material metadata slab properties",
3897
+ "type": "object",
3898
+ "properties": {
3899
+ "isSlab": {
3900
+ "description": "Whether the material was created as a surface slab",
3901
+ "type": "boolean"
3902
+ },
3903
+ "h": {
3904
+ "description": "Miller index h used to generate the slab",
3905
+ "type": "number"
3906
+ },
3907
+ "k": {
3908
+ "description": "Miller index k used to generate the slab",
3909
+ "type": "number"
3910
+ },
3911
+ "l": {
3912
+ "description": "Miller index l used to generate the slab",
3913
+ "type": "number"
3914
+ },
3915
+ "thickness": {
3916
+ "description": "Slab thickness in number of layers",
3917
+ "type": "number"
3918
+ },
3919
+ "vacuumRatio": {
3920
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
3921
+ "type": "number"
3922
+ },
3923
+ "vx": {
3924
+ "description": "Termination vector component along a",
3925
+ "type": "number"
3926
+ },
3927
+ "vy": {
3928
+ "description": "Termination vector component along b",
3929
+ "type": "number"
3930
+ }
3931
+ },
3932
+ "additionalProperties": true
3933
+ },
3934
+ {
3935
+ "$schema": "http://json-schema.org/draft-07/schema#",
3936
+ "title": "material metadata bulk properties",
3937
+ "type": "object",
3938
+ "properties": {
3939
+ "bulkId": {
3940
+ "description": "Source bulk material id used to generate the slab",
3941
+ "type": "string"
3942
+ }
3943
+ },
3944
+ "additionalProperties": true
3945
+ }
3946
+ ],
3947
+ "additionalProperties": true
3592
3948
  }
3593
3949
  }
3594
3950
  }
@@ -3650,9 +4006,36 @@
3650
4006
  "type": "object",
3651
4007
  "required": [
3652
4008
  "basis",
3653
- "lattice"
4009
+ "lattice",
4010
+ "metadata",
4011
+ "name"
3654
4012
  ],
3655
4013
  "properties": {
4014
+ "_id": {
4015
+ "description": "entity identity",
4016
+ "type": "string"
4017
+ },
4018
+ "slug": {
4019
+ "description": "entity slug",
4020
+ "type": "string"
4021
+ },
4022
+ "systemName": {
4023
+ "type": "string"
4024
+ },
4025
+ "schemaVersion": {
4026
+ "description": "entity's schema version. Used to distinct between different schemas.",
4027
+ "type": "string",
4028
+ "default": "2022.8.16"
4029
+ },
4030
+ "name": {
4031
+ "description": "entity name",
4032
+ "type": "string"
4033
+ },
4034
+ "isDefault": {
4035
+ "description": "Identifies that entity is defaultable",
4036
+ "type": "boolean",
4037
+ "default": false
4038
+ },
3656
4039
  "formula": {
3657
4040
  "description": "reduced chemical formula",
3658
4041
  "type": "string"
@@ -4376,33 +4759,95 @@
4376
4759
  }
4377
4760
  }
4378
4761
  },
4379
- "_id": {
4380
- "description": "entity identity",
4381
- "type": "string"
4382
- },
4383
- "slug": {
4384
- "description": "entity slug",
4385
- "type": "string"
4386
- },
4387
- "systemName": {
4388
- "type": "string"
4389
- },
4390
- "schemaVersion": {
4391
- "description": "entity's schema version. Used to distinct between different schemas.",
4392
- "type": "string",
4393
- "default": "2022.8.16"
4394
- },
4395
- "name": {
4396
- "description": "entity name",
4397
- "type": "string"
4398
- },
4399
- "isDefault": {
4400
- "description": "Identifies that entity is defaultable",
4401
- "type": "boolean",
4402
- "default": false
4403
- },
4404
4762
  "metadata": {
4405
- "type": "object"
4763
+ "type": "object",
4764
+ "default": {},
4765
+ "anyOf": [
4766
+ {
4767
+ "$schema": "http://json-schema.org/draft-07/schema#",
4768
+ "title": "material metadata boundary conditions",
4769
+ "type": "object",
4770
+ "properties": {
4771
+ "boundaryConditions": {
4772
+ "type": "object",
4773
+ "required": [
4774
+ "type",
4775
+ "offset"
4776
+ ],
4777
+ "properties": {
4778
+ "type": {
4779
+ "type": "string",
4780
+ "enum": [
4781
+ "pbc",
4782
+ "bc1",
4783
+ "bc2",
4784
+ "bc3"
4785
+ ],
4786
+ "default": "pbc",
4787
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
4788
+ },
4789
+ "offset": {
4790
+ "type": "number"
4791
+ }
4792
+ }
4793
+ }
4794
+ },
4795
+ "additionalProperties": true
4796
+ },
4797
+ {
4798
+ "$schema": "http://json-schema.org/draft-07/schema#",
4799
+ "title": "material metadata slab properties",
4800
+ "type": "object",
4801
+ "properties": {
4802
+ "isSlab": {
4803
+ "description": "Whether the material was created as a surface slab",
4804
+ "type": "boolean"
4805
+ },
4806
+ "h": {
4807
+ "description": "Miller index h used to generate the slab",
4808
+ "type": "number"
4809
+ },
4810
+ "k": {
4811
+ "description": "Miller index k used to generate the slab",
4812
+ "type": "number"
4813
+ },
4814
+ "l": {
4815
+ "description": "Miller index l used to generate the slab",
4816
+ "type": "number"
4817
+ },
4818
+ "thickness": {
4819
+ "description": "Slab thickness in number of layers",
4820
+ "type": "number"
4821
+ },
4822
+ "vacuumRatio": {
4823
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
4824
+ "type": "number"
4825
+ },
4826
+ "vx": {
4827
+ "description": "Termination vector component along a",
4828
+ "type": "number"
4829
+ },
4830
+ "vy": {
4831
+ "description": "Termination vector component along b",
4832
+ "type": "number"
4833
+ }
4834
+ },
4835
+ "additionalProperties": true
4836
+ },
4837
+ {
4838
+ "$schema": "http://json-schema.org/draft-07/schema#",
4839
+ "title": "material metadata bulk properties",
4840
+ "type": "object",
4841
+ "properties": {
4842
+ "bulkId": {
4843
+ "description": "Source bulk material id used to generate the slab",
4844
+ "type": "string"
4845
+ }
4846
+ },
4847
+ "additionalProperties": true
4848
+ }
4849
+ ],
4850
+ "additionalProperties": true
4406
4851
  }
4407
4852
  }
4408
4853
  },
@@ -4694,9 +5139,36 @@
4694
5139
  "type": "object",
4695
5140
  "required": [
4696
5141
  "basis",
4697
- "lattice"
5142
+ "lattice",
5143
+ "metadata",
5144
+ "name"
4698
5145
  ],
4699
5146
  "properties": {
5147
+ "_id": {
5148
+ "description": "entity identity",
5149
+ "type": "string"
5150
+ },
5151
+ "slug": {
5152
+ "description": "entity slug",
5153
+ "type": "string"
5154
+ },
5155
+ "systemName": {
5156
+ "type": "string"
5157
+ },
5158
+ "schemaVersion": {
5159
+ "description": "entity's schema version. Used to distinct between different schemas.",
5160
+ "type": "string",
5161
+ "default": "2022.8.16"
5162
+ },
5163
+ "name": {
5164
+ "description": "entity name",
5165
+ "type": "string"
5166
+ },
5167
+ "isDefault": {
5168
+ "description": "Identifies that entity is defaultable",
5169
+ "type": "boolean",
5170
+ "default": false
5171
+ },
4700
5172
  "formula": {
4701
5173
  "description": "reduced chemical formula",
4702
5174
  "type": "string"
@@ -5420,33 +5892,95 @@
5420
5892
  }
5421
5893
  }
5422
5894
  },
5423
- "_id": {
5424
- "description": "entity identity",
5425
- "type": "string"
5426
- },
5427
- "slug": {
5428
- "description": "entity slug",
5429
- "type": "string"
5430
- },
5431
- "systemName": {
5432
- "type": "string"
5433
- },
5434
- "schemaVersion": {
5435
- "description": "entity's schema version. Used to distinct between different schemas.",
5436
- "type": "string",
5437
- "default": "2022.8.16"
5438
- },
5439
- "name": {
5440
- "description": "entity name",
5441
- "type": "string"
5442
- },
5443
- "isDefault": {
5444
- "description": "Identifies that entity is defaultable",
5445
- "type": "boolean",
5446
- "default": false
5447
- },
5448
5895
  "metadata": {
5449
- "type": "object"
5896
+ "type": "object",
5897
+ "default": {},
5898
+ "anyOf": [
5899
+ {
5900
+ "$schema": "http://json-schema.org/draft-07/schema#",
5901
+ "title": "material metadata boundary conditions",
5902
+ "type": "object",
5903
+ "properties": {
5904
+ "boundaryConditions": {
5905
+ "type": "object",
5906
+ "required": [
5907
+ "type",
5908
+ "offset"
5909
+ ],
5910
+ "properties": {
5911
+ "type": {
5912
+ "type": "string",
5913
+ "enum": [
5914
+ "pbc",
5915
+ "bc1",
5916
+ "bc2",
5917
+ "bc3"
5918
+ ],
5919
+ "default": "pbc",
5920
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
5921
+ },
5922
+ "offset": {
5923
+ "type": "number"
5924
+ }
5925
+ }
5926
+ }
5927
+ },
5928
+ "additionalProperties": true
5929
+ },
5930
+ {
5931
+ "$schema": "http://json-schema.org/draft-07/schema#",
5932
+ "title": "material metadata slab properties",
5933
+ "type": "object",
5934
+ "properties": {
5935
+ "isSlab": {
5936
+ "description": "Whether the material was created as a surface slab",
5937
+ "type": "boolean"
5938
+ },
5939
+ "h": {
5940
+ "description": "Miller index h used to generate the slab",
5941
+ "type": "number"
5942
+ },
5943
+ "k": {
5944
+ "description": "Miller index k used to generate the slab",
5945
+ "type": "number"
5946
+ },
5947
+ "l": {
5948
+ "description": "Miller index l used to generate the slab",
5949
+ "type": "number"
5950
+ },
5951
+ "thickness": {
5952
+ "description": "Slab thickness in number of layers",
5953
+ "type": "number"
5954
+ },
5955
+ "vacuumRatio": {
5956
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
5957
+ "type": "number"
5958
+ },
5959
+ "vx": {
5960
+ "description": "Termination vector component along a",
5961
+ "type": "number"
5962
+ },
5963
+ "vy": {
5964
+ "description": "Termination vector component along b",
5965
+ "type": "number"
5966
+ }
5967
+ },
5968
+ "additionalProperties": true
5969
+ },
5970
+ {
5971
+ "$schema": "http://json-schema.org/draft-07/schema#",
5972
+ "title": "material metadata bulk properties",
5973
+ "type": "object",
5974
+ "properties": {
5975
+ "bulkId": {
5976
+ "description": "Source bulk material id used to generate the slab",
5977
+ "type": "string"
5978
+ }
5979
+ },
5980
+ "additionalProperties": true
5981
+ }
5982
+ ],
5983
+ "additionalProperties": true
5450
5984
  }
5451
5985
  }
5452
5986
  }