@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
@@ -223,9 +223,36 @@
223
223
  "type": "object",
224
224
  "required": [
225
225
  "basis",
226
- "lattice"
226
+ "lattice",
227
+ "metadata",
228
+ "name"
227
229
  ],
228
230
  "properties": {
231
+ "_id": {
232
+ "description": "entity identity",
233
+ "type": "string"
234
+ },
235
+ "slug": {
236
+ "description": "entity slug",
237
+ "type": "string"
238
+ },
239
+ "systemName": {
240
+ "type": "string"
241
+ },
242
+ "schemaVersion": {
243
+ "description": "entity's schema version. Used to distinct between different schemas.",
244
+ "type": "string",
245
+ "default": "2022.8.16"
246
+ },
247
+ "name": {
248
+ "description": "entity name",
249
+ "type": "string"
250
+ },
251
+ "isDefault": {
252
+ "description": "Identifies that entity is defaultable",
253
+ "type": "boolean",
254
+ "default": false
255
+ },
229
256
  "formula": {
230
257
  "description": "reduced chemical formula",
231
258
  "type": "string"
@@ -949,33 +976,95 @@
949
976
  }
950
977
  }
951
978
  },
952
- "_id": {
953
- "description": "entity identity",
954
- "type": "string"
955
- },
956
- "slug": {
957
- "description": "entity slug",
958
- "type": "string"
959
- },
960
- "systemName": {
961
- "type": "string"
962
- },
963
- "schemaVersion": {
964
- "description": "entity's schema version. Used to distinct between different schemas.",
965
- "type": "string",
966
- "default": "2022.8.16"
967
- },
968
- "name": {
969
- "description": "entity name",
970
- "type": "string"
971
- },
972
- "isDefault": {
973
- "description": "Identifies that entity is defaultable",
974
- "type": "boolean",
975
- "default": false
976
- },
977
979
  "metadata": {
978
- "type": "object"
980
+ "type": "object",
981
+ "default": {},
982
+ "anyOf": [
983
+ {
984
+ "$schema": "http://json-schema.org/draft-07/schema#",
985
+ "title": "material metadata boundary conditions",
986
+ "type": "object",
987
+ "properties": {
988
+ "boundaryConditions": {
989
+ "type": "object",
990
+ "required": [
991
+ "type",
992
+ "offset"
993
+ ],
994
+ "properties": {
995
+ "type": {
996
+ "type": "string",
997
+ "enum": [
998
+ "pbc",
999
+ "bc1",
1000
+ "bc2",
1001
+ "bc3"
1002
+ ],
1003
+ "default": "pbc",
1004
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
1005
+ },
1006
+ "offset": {
1007
+ "type": "number"
1008
+ }
1009
+ }
1010
+ }
1011
+ },
1012
+ "additionalProperties": true
1013
+ },
1014
+ {
1015
+ "$schema": "http://json-schema.org/draft-07/schema#",
1016
+ "title": "material metadata slab properties",
1017
+ "type": "object",
1018
+ "properties": {
1019
+ "isSlab": {
1020
+ "description": "Whether the material was created as a surface slab",
1021
+ "type": "boolean"
1022
+ },
1023
+ "h": {
1024
+ "description": "Miller index h used to generate the slab",
1025
+ "type": "number"
1026
+ },
1027
+ "k": {
1028
+ "description": "Miller index k used to generate the slab",
1029
+ "type": "number"
1030
+ },
1031
+ "l": {
1032
+ "description": "Miller index l used to generate the slab",
1033
+ "type": "number"
1034
+ },
1035
+ "thickness": {
1036
+ "description": "Slab thickness in number of layers",
1037
+ "type": "number"
1038
+ },
1039
+ "vacuumRatio": {
1040
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
1041
+ "type": "number"
1042
+ },
1043
+ "vx": {
1044
+ "description": "Termination vector component along a",
1045
+ "type": "number"
1046
+ },
1047
+ "vy": {
1048
+ "description": "Termination vector component along b",
1049
+ "type": "number"
1050
+ }
1051
+ },
1052
+ "additionalProperties": true
1053
+ },
1054
+ {
1055
+ "$schema": "http://json-schema.org/draft-07/schema#",
1056
+ "title": "material metadata bulk properties",
1057
+ "type": "object",
1058
+ "properties": {
1059
+ "bulkId": {
1060
+ "description": "Source bulk material id used to generate the slab",
1061
+ "type": "string"
1062
+ }
1063
+ },
1064
+ "additionalProperties": true
1065
+ }
1066
+ ],
1067
+ "additionalProperties": true
979
1068
  }
980
1069
  }
981
1070
  },
@@ -1021,9 +1110,36 @@
1021
1110
  "type": "object",
1022
1111
  "required": [
1023
1112
  "basis",
1024
- "lattice"
1113
+ "lattice",
1114
+ "metadata",
1115
+ "name"
1025
1116
  ],
1026
1117
  "properties": {
1118
+ "_id": {
1119
+ "description": "entity identity",
1120
+ "type": "string"
1121
+ },
1122
+ "slug": {
1123
+ "description": "entity slug",
1124
+ "type": "string"
1125
+ },
1126
+ "systemName": {
1127
+ "type": "string"
1128
+ },
1129
+ "schemaVersion": {
1130
+ "description": "entity's schema version. Used to distinct between different schemas.",
1131
+ "type": "string",
1132
+ "default": "2022.8.16"
1133
+ },
1134
+ "name": {
1135
+ "description": "entity name",
1136
+ "type": "string"
1137
+ },
1138
+ "isDefault": {
1139
+ "description": "Identifies that entity is defaultable",
1140
+ "type": "boolean",
1141
+ "default": false
1142
+ },
1027
1143
  "formula": {
1028
1144
  "description": "reduced chemical formula",
1029
1145
  "type": "string"
@@ -1747,33 +1863,95 @@
1747
1863
  }
1748
1864
  }
1749
1865
  },
1750
- "_id": {
1751
- "description": "entity identity",
1752
- "type": "string"
1753
- },
1754
- "slug": {
1755
- "description": "entity slug",
1756
- "type": "string"
1757
- },
1758
- "systemName": {
1759
- "type": "string"
1760
- },
1761
- "schemaVersion": {
1762
- "description": "entity's schema version. Used to distinct between different schemas.",
1763
- "type": "string",
1764
- "default": "2022.8.16"
1765
- },
1766
- "name": {
1767
- "description": "entity name",
1768
- "type": "string"
1769
- },
1770
- "isDefault": {
1771
- "description": "Identifies that entity is defaultable",
1772
- "type": "boolean",
1773
- "default": false
1774
- },
1775
1866
  "metadata": {
1776
- "type": "object"
1867
+ "type": "object",
1868
+ "default": {},
1869
+ "anyOf": [
1870
+ {
1871
+ "$schema": "http://json-schema.org/draft-07/schema#",
1872
+ "title": "material metadata boundary conditions",
1873
+ "type": "object",
1874
+ "properties": {
1875
+ "boundaryConditions": {
1876
+ "type": "object",
1877
+ "required": [
1878
+ "type",
1879
+ "offset"
1880
+ ],
1881
+ "properties": {
1882
+ "type": {
1883
+ "type": "string",
1884
+ "enum": [
1885
+ "pbc",
1886
+ "bc1",
1887
+ "bc2",
1888
+ "bc3"
1889
+ ],
1890
+ "default": "pbc",
1891
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
1892
+ },
1893
+ "offset": {
1894
+ "type": "number"
1895
+ }
1896
+ }
1897
+ }
1898
+ },
1899
+ "additionalProperties": true
1900
+ },
1901
+ {
1902
+ "$schema": "http://json-schema.org/draft-07/schema#",
1903
+ "title": "material metadata slab properties",
1904
+ "type": "object",
1905
+ "properties": {
1906
+ "isSlab": {
1907
+ "description": "Whether the material was created as a surface slab",
1908
+ "type": "boolean"
1909
+ },
1910
+ "h": {
1911
+ "description": "Miller index h used to generate the slab",
1912
+ "type": "number"
1913
+ },
1914
+ "k": {
1915
+ "description": "Miller index k used to generate the slab",
1916
+ "type": "number"
1917
+ },
1918
+ "l": {
1919
+ "description": "Miller index l used to generate the slab",
1920
+ "type": "number"
1921
+ },
1922
+ "thickness": {
1923
+ "description": "Slab thickness in number of layers",
1924
+ "type": "number"
1925
+ },
1926
+ "vacuumRatio": {
1927
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
1928
+ "type": "number"
1929
+ },
1930
+ "vx": {
1931
+ "description": "Termination vector component along a",
1932
+ "type": "number"
1933
+ },
1934
+ "vy": {
1935
+ "description": "Termination vector component along b",
1936
+ "type": "number"
1937
+ }
1938
+ },
1939
+ "additionalProperties": true
1940
+ },
1941
+ {
1942
+ "$schema": "http://json-schema.org/draft-07/schema#",
1943
+ "title": "material metadata bulk properties",
1944
+ "type": "object",
1945
+ "properties": {
1946
+ "bulkId": {
1947
+ "description": "Source bulk material id used to generate the slab",
1948
+ "type": "string"
1949
+ }
1950
+ },
1951
+ "additionalProperties": true
1952
+ }
1953
+ ],
1954
+ "additionalProperties": true
1777
1955
  }
1778
1956
  }
1779
1957
  }
@@ -2070,9 +2248,36 @@
2070
2248
  "type": "object",
2071
2249
  "required": [
2072
2250
  "basis",
2073
- "lattice"
2251
+ "lattice",
2252
+ "metadata",
2253
+ "name"
2074
2254
  ],
2075
2255
  "properties": {
2256
+ "_id": {
2257
+ "description": "entity identity",
2258
+ "type": "string"
2259
+ },
2260
+ "slug": {
2261
+ "description": "entity slug",
2262
+ "type": "string"
2263
+ },
2264
+ "systemName": {
2265
+ "type": "string"
2266
+ },
2267
+ "schemaVersion": {
2268
+ "description": "entity's schema version. Used to distinct between different schemas.",
2269
+ "type": "string",
2270
+ "default": "2022.8.16"
2271
+ },
2272
+ "name": {
2273
+ "description": "entity name",
2274
+ "type": "string"
2275
+ },
2276
+ "isDefault": {
2277
+ "description": "Identifies that entity is defaultable",
2278
+ "type": "boolean",
2279
+ "default": false
2280
+ },
2076
2281
  "formula": {
2077
2282
  "description": "reduced chemical formula",
2078
2283
  "type": "string"
@@ -2796,53 +3001,115 @@
2796
3001
  }
2797
3002
  }
2798
3003
  },
2799
- "_id": {
2800
- "description": "entity identity",
2801
- "type": "string"
2802
- },
2803
- "slug": {
2804
- "description": "entity slug",
2805
- "type": "string"
2806
- },
2807
- "systemName": {
2808
- "type": "string"
2809
- },
2810
- "schemaVersion": {
2811
- "description": "entity's schema version. Used to distinct between different schemas.",
2812
- "type": "string",
2813
- "default": "2022.8.16"
2814
- },
2815
- "name": {
2816
- "description": "entity name",
2817
- "type": "string"
2818
- },
2819
- "isDefault": {
2820
- "description": "Identifies that entity is defaultable",
2821
- "type": "boolean",
2822
- "default": false
2823
- },
2824
3004
  "metadata": {
2825
- "type": "object"
2826
- }
2827
- }
2828
- },
2829
- "use_conventional_cell": {
2830
- "type": "boolean",
2831
- "description": "Use the conventional cell for the crystal structure",
2832
- "default": true
2833
- }
2834
- }
2835
- },
2836
- {
2837
- "$schema": "http://json-schema.org/draft-07/schema#",
2838
- "title": "Vacuum Configuration Schema",
2839
- "description": "A vacuum slab that breaks periodicity in a specified direction",
2840
- "type": "object",
2841
- "required": [
2842
- "direction",
2843
- "size",
2844
- "crystal"
2845
- ],
3005
+ "type": "object",
3006
+ "default": {},
3007
+ "anyOf": [
3008
+ {
3009
+ "$schema": "http://json-schema.org/draft-07/schema#",
3010
+ "title": "material metadata boundary conditions",
3011
+ "type": "object",
3012
+ "properties": {
3013
+ "boundaryConditions": {
3014
+ "type": "object",
3015
+ "required": [
3016
+ "type",
3017
+ "offset"
3018
+ ],
3019
+ "properties": {
3020
+ "type": {
3021
+ "type": "string",
3022
+ "enum": [
3023
+ "pbc",
3024
+ "bc1",
3025
+ "bc2",
3026
+ "bc3"
3027
+ ],
3028
+ "default": "pbc",
3029
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
3030
+ },
3031
+ "offset": {
3032
+ "type": "number"
3033
+ }
3034
+ }
3035
+ }
3036
+ },
3037
+ "additionalProperties": true
3038
+ },
3039
+ {
3040
+ "$schema": "http://json-schema.org/draft-07/schema#",
3041
+ "title": "material metadata slab properties",
3042
+ "type": "object",
3043
+ "properties": {
3044
+ "isSlab": {
3045
+ "description": "Whether the material was created as a surface slab",
3046
+ "type": "boolean"
3047
+ },
3048
+ "h": {
3049
+ "description": "Miller index h used to generate the slab",
3050
+ "type": "number"
3051
+ },
3052
+ "k": {
3053
+ "description": "Miller index k used to generate the slab",
3054
+ "type": "number"
3055
+ },
3056
+ "l": {
3057
+ "description": "Miller index l used to generate the slab",
3058
+ "type": "number"
3059
+ },
3060
+ "thickness": {
3061
+ "description": "Slab thickness in number of layers",
3062
+ "type": "number"
3063
+ },
3064
+ "vacuumRatio": {
3065
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
3066
+ "type": "number"
3067
+ },
3068
+ "vx": {
3069
+ "description": "Termination vector component along a",
3070
+ "type": "number"
3071
+ },
3072
+ "vy": {
3073
+ "description": "Termination vector component along b",
3074
+ "type": "number"
3075
+ }
3076
+ },
3077
+ "additionalProperties": true
3078
+ },
3079
+ {
3080
+ "$schema": "http://json-schema.org/draft-07/schema#",
3081
+ "title": "material metadata bulk properties",
3082
+ "type": "object",
3083
+ "properties": {
3084
+ "bulkId": {
3085
+ "description": "Source bulk material id used to generate the slab",
3086
+ "type": "string"
3087
+ }
3088
+ },
3089
+ "additionalProperties": true
3090
+ }
3091
+ ],
3092
+ "additionalProperties": true
3093
+ }
3094
+ }
3095
+ },
3096
+ "use_conventional_cell": {
3097
+ "type": "boolean",
3098
+ "description": "Use the conventional cell for the crystal structure",
3099
+ "default": true
3100
+ }
3101
+ }
3102
+ },
3103
+ {
3104
+ "$schema": "http://json-schema.org/draft-07/schema#",
3105
+ "title": "Vacuum Configuration Schema",
3106
+ "description": "A vacuum slab that breaks periodicity in a specified direction",
3107
+ "type": "object",
3108
+ "required": [
3109
+ "direction",
3110
+ "size",
3111
+ "crystal"
3112
+ ],
2846
3113
  "properties": {
2847
3114
  "direction": {
2848
3115
  "$schema": "http://json-schema.org/draft-07/schema#",
@@ -2868,9 +3135,36 @@
2868
3135
  "type": "object",
2869
3136
  "required": [
2870
3137
  "basis",
2871
- "lattice"
3138
+ "lattice",
3139
+ "metadata",
3140
+ "name"
2872
3141
  ],
2873
3142
  "properties": {
3143
+ "_id": {
3144
+ "description": "entity identity",
3145
+ "type": "string"
3146
+ },
3147
+ "slug": {
3148
+ "description": "entity slug",
3149
+ "type": "string"
3150
+ },
3151
+ "systemName": {
3152
+ "type": "string"
3153
+ },
3154
+ "schemaVersion": {
3155
+ "description": "entity's schema version. Used to distinct between different schemas.",
3156
+ "type": "string",
3157
+ "default": "2022.8.16"
3158
+ },
3159
+ "name": {
3160
+ "description": "entity name",
3161
+ "type": "string"
3162
+ },
3163
+ "isDefault": {
3164
+ "description": "Identifies that entity is defaultable",
3165
+ "type": "boolean",
3166
+ "default": false
3167
+ },
2874
3168
  "formula": {
2875
3169
  "description": "reduced chemical formula",
2876
3170
  "type": "string"
@@ -3594,33 +3888,95 @@
3594
3888
  }
3595
3889
  }
3596
3890
  },
3597
- "_id": {
3598
- "description": "entity identity",
3599
- "type": "string"
3600
- },
3601
- "slug": {
3602
- "description": "entity slug",
3603
- "type": "string"
3604
- },
3605
- "systemName": {
3606
- "type": "string"
3607
- },
3608
- "schemaVersion": {
3609
- "description": "entity's schema version. Used to distinct between different schemas.",
3610
- "type": "string",
3611
- "default": "2022.8.16"
3612
- },
3613
- "name": {
3614
- "description": "entity name",
3615
- "type": "string"
3616
- },
3617
- "isDefault": {
3618
- "description": "Identifies that entity is defaultable",
3619
- "type": "boolean",
3620
- "default": false
3621
- },
3622
3891
  "metadata": {
3623
- "type": "object"
3892
+ "type": "object",
3893
+ "default": {},
3894
+ "anyOf": [
3895
+ {
3896
+ "$schema": "http://json-schema.org/draft-07/schema#",
3897
+ "title": "material metadata boundary conditions",
3898
+ "type": "object",
3899
+ "properties": {
3900
+ "boundaryConditions": {
3901
+ "type": "object",
3902
+ "required": [
3903
+ "type",
3904
+ "offset"
3905
+ ],
3906
+ "properties": {
3907
+ "type": {
3908
+ "type": "string",
3909
+ "enum": [
3910
+ "pbc",
3911
+ "bc1",
3912
+ "bc2",
3913
+ "bc3"
3914
+ ],
3915
+ "default": "pbc",
3916
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
3917
+ },
3918
+ "offset": {
3919
+ "type": "number"
3920
+ }
3921
+ }
3922
+ }
3923
+ },
3924
+ "additionalProperties": true
3925
+ },
3926
+ {
3927
+ "$schema": "http://json-schema.org/draft-07/schema#",
3928
+ "title": "material metadata slab properties",
3929
+ "type": "object",
3930
+ "properties": {
3931
+ "isSlab": {
3932
+ "description": "Whether the material was created as a surface slab",
3933
+ "type": "boolean"
3934
+ },
3935
+ "h": {
3936
+ "description": "Miller index h used to generate the slab",
3937
+ "type": "number"
3938
+ },
3939
+ "k": {
3940
+ "description": "Miller index k used to generate the slab",
3941
+ "type": "number"
3942
+ },
3943
+ "l": {
3944
+ "description": "Miller index l used to generate the slab",
3945
+ "type": "number"
3946
+ },
3947
+ "thickness": {
3948
+ "description": "Slab thickness in number of layers",
3949
+ "type": "number"
3950
+ },
3951
+ "vacuumRatio": {
3952
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
3953
+ "type": "number"
3954
+ },
3955
+ "vx": {
3956
+ "description": "Termination vector component along a",
3957
+ "type": "number"
3958
+ },
3959
+ "vy": {
3960
+ "description": "Termination vector component along b",
3961
+ "type": "number"
3962
+ }
3963
+ },
3964
+ "additionalProperties": true
3965
+ },
3966
+ {
3967
+ "$schema": "http://json-schema.org/draft-07/schema#",
3968
+ "title": "material metadata bulk properties",
3969
+ "type": "object",
3970
+ "properties": {
3971
+ "bulkId": {
3972
+ "description": "Source bulk material id used to generate the slab",
3973
+ "type": "string"
3974
+ }
3975
+ },
3976
+ "additionalProperties": true
3977
+ }
3978
+ ],
3979
+ "additionalProperties": true
3624
3980
  }
3625
3981
  }
3626
3982
  }
@@ -3876,9 +4232,36 @@
3876
4232
  "type": "object",
3877
4233
  "required": [
3878
4234
  "basis",
3879
- "lattice"
4235
+ "lattice",
4236
+ "metadata",
4237
+ "name"
3880
4238
  ],
3881
4239
  "properties": {
4240
+ "_id": {
4241
+ "description": "entity identity",
4242
+ "type": "string"
4243
+ },
4244
+ "slug": {
4245
+ "description": "entity slug",
4246
+ "type": "string"
4247
+ },
4248
+ "systemName": {
4249
+ "type": "string"
4250
+ },
4251
+ "schemaVersion": {
4252
+ "description": "entity's schema version. Used to distinct between different schemas.",
4253
+ "type": "string",
4254
+ "default": "2022.8.16"
4255
+ },
4256
+ "name": {
4257
+ "description": "entity name",
4258
+ "type": "string"
4259
+ },
4260
+ "isDefault": {
4261
+ "description": "Identifies that entity is defaultable",
4262
+ "type": "boolean",
4263
+ "default": false
4264
+ },
3882
4265
  "formula": {
3883
4266
  "description": "reduced chemical formula",
3884
4267
  "type": "string"
@@ -4602,33 +4985,95 @@
4602
4985
  }
4603
4986
  }
4604
4987
  },
4605
- "_id": {
4606
- "description": "entity identity",
4607
- "type": "string"
4608
- },
4609
- "slug": {
4610
- "description": "entity slug",
4611
- "type": "string"
4612
- },
4613
- "systemName": {
4614
- "type": "string"
4615
- },
4616
- "schemaVersion": {
4617
- "description": "entity's schema version. Used to distinct between different schemas.",
4618
- "type": "string",
4619
- "default": "2022.8.16"
4620
- },
4621
- "name": {
4622
- "description": "entity name",
4623
- "type": "string"
4624
- },
4625
- "isDefault": {
4626
- "description": "Identifies that entity is defaultable",
4627
- "type": "boolean",
4628
- "default": false
4629
- },
4630
4988
  "metadata": {
4631
- "type": "object"
4989
+ "type": "object",
4990
+ "default": {},
4991
+ "anyOf": [
4992
+ {
4993
+ "$schema": "http://json-schema.org/draft-07/schema#",
4994
+ "title": "material metadata boundary conditions",
4995
+ "type": "object",
4996
+ "properties": {
4997
+ "boundaryConditions": {
4998
+ "type": "object",
4999
+ "required": [
5000
+ "type",
5001
+ "offset"
5002
+ ],
5003
+ "properties": {
5004
+ "type": {
5005
+ "type": "string",
5006
+ "enum": [
5007
+ "pbc",
5008
+ "bc1",
5009
+ "bc2",
5010
+ "bc3"
5011
+ ],
5012
+ "default": "pbc",
5013
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
5014
+ },
5015
+ "offset": {
5016
+ "type": "number"
5017
+ }
5018
+ }
5019
+ }
5020
+ },
5021
+ "additionalProperties": true
5022
+ },
5023
+ {
5024
+ "$schema": "http://json-schema.org/draft-07/schema#",
5025
+ "title": "material metadata slab properties",
5026
+ "type": "object",
5027
+ "properties": {
5028
+ "isSlab": {
5029
+ "description": "Whether the material was created as a surface slab",
5030
+ "type": "boolean"
5031
+ },
5032
+ "h": {
5033
+ "description": "Miller index h used to generate the slab",
5034
+ "type": "number"
5035
+ },
5036
+ "k": {
5037
+ "description": "Miller index k used to generate the slab",
5038
+ "type": "number"
5039
+ },
5040
+ "l": {
5041
+ "description": "Miller index l used to generate the slab",
5042
+ "type": "number"
5043
+ },
5044
+ "thickness": {
5045
+ "description": "Slab thickness in number of layers",
5046
+ "type": "number"
5047
+ },
5048
+ "vacuumRatio": {
5049
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
5050
+ "type": "number"
5051
+ },
5052
+ "vx": {
5053
+ "description": "Termination vector component along a",
5054
+ "type": "number"
5055
+ },
5056
+ "vy": {
5057
+ "description": "Termination vector component along b",
5058
+ "type": "number"
5059
+ }
5060
+ },
5061
+ "additionalProperties": true
5062
+ },
5063
+ {
5064
+ "$schema": "http://json-schema.org/draft-07/schema#",
5065
+ "title": "material metadata bulk properties",
5066
+ "type": "object",
5067
+ "properties": {
5068
+ "bulkId": {
5069
+ "description": "Source bulk material id used to generate the slab",
5070
+ "type": "string"
5071
+ }
5072
+ },
5073
+ "additionalProperties": true
5074
+ }
5075
+ ],
5076
+ "additionalProperties": true
4632
5077
  }
4633
5078
  }
4634
5079
  },
@@ -4674,16 +5119,43 @@
4674
5119
  "type": "object",
4675
5120
  "required": [
4676
5121
  "basis",
4677
- "lattice"
5122
+ "lattice",
5123
+ "metadata",
5124
+ "name"
4678
5125
  ],
4679
5126
  "properties": {
4680
- "formula": {
4681
- "description": "reduced chemical formula",
5127
+ "_id": {
5128
+ "description": "entity identity",
4682
5129
  "type": "string"
4683
5130
  },
4684
- "unitCellFormula": {
4685
- "description": "chemical formula based on the number of atoms of each element in the supercell",
4686
- "type": "string"
5131
+ "slug": {
5132
+ "description": "entity slug",
5133
+ "type": "string"
5134
+ },
5135
+ "systemName": {
5136
+ "type": "string"
5137
+ },
5138
+ "schemaVersion": {
5139
+ "description": "entity's schema version. Used to distinct between different schemas.",
5140
+ "type": "string",
5141
+ "default": "2022.8.16"
5142
+ },
5143
+ "name": {
5144
+ "description": "entity name",
5145
+ "type": "string"
5146
+ },
5147
+ "isDefault": {
5148
+ "description": "Identifies that entity is defaultable",
5149
+ "type": "boolean",
5150
+ "default": false
5151
+ },
5152
+ "formula": {
5153
+ "description": "reduced chemical formula",
5154
+ "type": "string"
5155
+ },
5156
+ "unitCellFormula": {
5157
+ "description": "chemical formula based on the number of atoms of each element in the supercell",
5158
+ "type": "string"
4687
5159
  },
4688
5160
  "basis": {
4689
5161
  "$schema": "http://json-schema.org/draft-07/schema#",
@@ -5400,33 +5872,95 @@
5400
5872
  }
5401
5873
  }
5402
5874
  },
5403
- "_id": {
5404
- "description": "entity identity",
5405
- "type": "string"
5406
- },
5407
- "slug": {
5408
- "description": "entity slug",
5409
- "type": "string"
5410
- },
5411
- "systemName": {
5412
- "type": "string"
5413
- },
5414
- "schemaVersion": {
5415
- "description": "entity's schema version. Used to distinct between different schemas.",
5416
- "type": "string",
5417
- "default": "2022.8.16"
5418
- },
5419
- "name": {
5420
- "description": "entity name",
5421
- "type": "string"
5422
- },
5423
- "isDefault": {
5424
- "description": "Identifies that entity is defaultable",
5425
- "type": "boolean",
5426
- "default": false
5427
- },
5428
5875
  "metadata": {
5429
- "type": "object"
5876
+ "type": "object",
5877
+ "default": {},
5878
+ "anyOf": [
5879
+ {
5880
+ "$schema": "http://json-schema.org/draft-07/schema#",
5881
+ "title": "material metadata boundary conditions",
5882
+ "type": "object",
5883
+ "properties": {
5884
+ "boundaryConditions": {
5885
+ "type": "object",
5886
+ "required": [
5887
+ "type",
5888
+ "offset"
5889
+ ],
5890
+ "properties": {
5891
+ "type": {
5892
+ "type": "string",
5893
+ "enum": [
5894
+ "pbc",
5895
+ "bc1",
5896
+ "bc2",
5897
+ "bc3"
5898
+ ],
5899
+ "default": "pbc",
5900
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
5901
+ },
5902
+ "offset": {
5903
+ "type": "number"
5904
+ }
5905
+ }
5906
+ }
5907
+ },
5908
+ "additionalProperties": true
5909
+ },
5910
+ {
5911
+ "$schema": "http://json-schema.org/draft-07/schema#",
5912
+ "title": "material metadata slab properties",
5913
+ "type": "object",
5914
+ "properties": {
5915
+ "isSlab": {
5916
+ "description": "Whether the material was created as a surface slab",
5917
+ "type": "boolean"
5918
+ },
5919
+ "h": {
5920
+ "description": "Miller index h used to generate the slab",
5921
+ "type": "number"
5922
+ },
5923
+ "k": {
5924
+ "description": "Miller index k used to generate the slab",
5925
+ "type": "number"
5926
+ },
5927
+ "l": {
5928
+ "description": "Miller index l used to generate the slab",
5929
+ "type": "number"
5930
+ },
5931
+ "thickness": {
5932
+ "description": "Slab thickness in number of layers",
5933
+ "type": "number"
5934
+ },
5935
+ "vacuumRatio": {
5936
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
5937
+ "type": "number"
5938
+ },
5939
+ "vx": {
5940
+ "description": "Termination vector component along a",
5941
+ "type": "number"
5942
+ },
5943
+ "vy": {
5944
+ "description": "Termination vector component along b",
5945
+ "type": "number"
5946
+ }
5947
+ },
5948
+ "additionalProperties": true
5949
+ },
5950
+ {
5951
+ "$schema": "http://json-schema.org/draft-07/schema#",
5952
+ "title": "material metadata bulk properties",
5953
+ "type": "object",
5954
+ "properties": {
5955
+ "bulkId": {
5956
+ "description": "Source bulk material id used to generate the slab",
5957
+ "type": "string"
5958
+ }
5959
+ },
5960
+ "additionalProperties": true
5961
+ }
5962
+ ],
5963
+ "additionalProperties": true
5430
5964
  }
5431
5965
  }
5432
5966
  }
@@ -5723,9 +6257,36 @@
5723
6257
  "type": "object",
5724
6258
  "required": [
5725
6259
  "basis",
5726
- "lattice"
6260
+ "lattice",
6261
+ "metadata",
6262
+ "name"
5727
6263
  ],
5728
6264
  "properties": {
6265
+ "_id": {
6266
+ "description": "entity identity",
6267
+ "type": "string"
6268
+ },
6269
+ "slug": {
6270
+ "description": "entity slug",
6271
+ "type": "string"
6272
+ },
6273
+ "systemName": {
6274
+ "type": "string"
6275
+ },
6276
+ "schemaVersion": {
6277
+ "description": "entity's schema version. Used to distinct between different schemas.",
6278
+ "type": "string",
6279
+ "default": "2022.8.16"
6280
+ },
6281
+ "name": {
6282
+ "description": "entity name",
6283
+ "type": "string"
6284
+ },
6285
+ "isDefault": {
6286
+ "description": "Identifies that entity is defaultable",
6287
+ "type": "boolean",
6288
+ "default": false
6289
+ },
5729
6290
  "formula": {
5730
6291
  "description": "reduced chemical formula",
5731
6292
  "type": "string"
@@ -6449,33 +7010,95 @@
6449
7010
  }
6450
7011
  }
6451
7012
  },
6452
- "_id": {
6453
- "description": "entity identity",
6454
- "type": "string"
6455
- },
6456
- "slug": {
6457
- "description": "entity slug",
6458
- "type": "string"
6459
- },
6460
- "systemName": {
6461
- "type": "string"
6462
- },
6463
- "schemaVersion": {
6464
- "description": "entity's schema version. Used to distinct between different schemas.",
6465
- "type": "string",
6466
- "default": "2022.8.16"
6467
- },
6468
- "name": {
6469
- "description": "entity name",
6470
- "type": "string"
6471
- },
6472
- "isDefault": {
6473
- "description": "Identifies that entity is defaultable",
6474
- "type": "boolean",
6475
- "default": false
6476
- },
6477
7013
  "metadata": {
6478
- "type": "object"
7014
+ "type": "object",
7015
+ "default": {},
7016
+ "anyOf": [
7017
+ {
7018
+ "$schema": "http://json-schema.org/draft-07/schema#",
7019
+ "title": "material metadata boundary conditions",
7020
+ "type": "object",
7021
+ "properties": {
7022
+ "boundaryConditions": {
7023
+ "type": "object",
7024
+ "required": [
7025
+ "type",
7026
+ "offset"
7027
+ ],
7028
+ "properties": {
7029
+ "type": {
7030
+ "type": "string",
7031
+ "enum": [
7032
+ "pbc",
7033
+ "bc1",
7034
+ "bc2",
7035
+ "bc3"
7036
+ ],
7037
+ "default": "pbc",
7038
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
7039
+ },
7040
+ "offset": {
7041
+ "type": "number"
7042
+ }
7043
+ }
7044
+ }
7045
+ },
7046
+ "additionalProperties": true
7047
+ },
7048
+ {
7049
+ "$schema": "http://json-schema.org/draft-07/schema#",
7050
+ "title": "material metadata slab properties",
7051
+ "type": "object",
7052
+ "properties": {
7053
+ "isSlab": {
7054
+ "description": "Whether the material was created as a surface slab",
7055
+ "type": "boolean"
7056
+ },
7057
+ "h": {
7058
+ "description": "Miller index h used to generate the slab",
7059
+ "type": "number"
7060
+ },
7061
+ "k": {
7062
+ "description": "Miller index k used to generate the slab",
7063
+ "type": "number"
7064
+ },
7065
+ "l": {
7066
+ "description": "Miller index l used to generate the slab",
7067
+ "type": "number"
7068
+ },
7069
+ "thickness": {
7070
+ "description": "Slab thickness in number of layers",
7071
+ "type": "number"
7072
+ },
7073
+ "vacuumRatio": {
7074
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
7075
+ "type": "number"
7076
+ },
7077
+ "vx": {
7078
+ "description": "Termination vector component along a",
7079
+ "type": "number"
7080
+ },
7081
+ "vy": {
7082
+ "description": "Termination vector component along b",
7083
+ "type": "number"
7084
+ }
7085
+ },
7086
+ "additionalProperties": true
7087
+ },
7088
+ {
7089
+ "$schema": "http://json-schema.org/draft-07/schema#",
7090
+ "title": "material metadata bulk properties",
7091
+ "type": "object",
7092
+ "properties": {
7093
+ "bulkId": {
7094
+ "description": "Source bulk material id used to generate the slab",
7095
+ "type": "string"
7096
+ }
7097
+ },
7098
+ "additionalProperties": true
7099
+ }
7100
+ ],
7101
+ "additionalProperties": true
6479
7102
  }
6480
7103
  }
6481
7104
  },
@@ -6521,9 +7144,36 @@
6521
7144
  "type": "object",
6522
7145
  "required": [
6523
7146
  "basis",
6524
- "lattice"
7147
+ "lattice",
7148
+ "metadata",
7149
+ "name"
6525
7150
  ],
6526
7151
  "properties": {
7152
+ "_id": {
7153
+ "description": "entity identity",
7154
+ "type": "string"
7155
+ },
7156
+ "slug": {
7157
+ "description": "entity slug",
7158
+ "type": "string"
7159
+ },
7160
+ "systemName": {
7161
+ "type": "string"
7162
+ },
7163
+ "schemaVersion": {
7164
+ "description": "entity's schema version. Used to distinct between different schemas.",
7165
+ "type": "string",
7166
+ "default": "2022.8.16"
7167
+ },
7168
+ "name": {
7169
+ "description": "entity name",
7170
+ "type": "string"
7171
+ },
7172
+ "isDefault": {
7173
+ "description": "Identifies that entity is defaultable",
7174
+ "type": "boolean",
7175
+ "default": false
7176
+ },
6527
7177
  "formula": {
6528
7178
  "description": "reduced chemical formula",
6529
7179
  "type": "string"
@@ -7247,33 +7897,95 @@
7247
7897
  }
7248
7898
  }
7249
7899
  },
7250
- "_id": {
7251
- "description": "entity identity",
7252
- "type": "string"
7253
- },
7254
- "slug": {
7255
- "description": "entity slug",
7256
- "type": "string"
7257
- },
7258
- "systemName": {
7259
- "type": "string"
7260
- },
7261
- "schemaVersion": {
7262
- "description": "entity's schema version. Used to distinct between different schemas.",
7263
- "type": "string",
7264
- "default": "2022.8.16"
7265
- },
7266
- "name": {
7267
- "description": "entity name",
7268
- "type": "string"
7269
- },
7270
- "isDefault": {
7271
- "description": "Identifies that entity is defaultable",
7272
- "type": "boolean",
7273
- "default": false
7274
- },
7275
7900
  "metadata": {
7276
- "type": "object"
7901
+ "type": "object",
7902
+ "default": {},
7903
+ "anyOf": [
7904
+ {
7905
+ "$schema": "http://json-schema.org/draft-07/schema#",
7906
+ "title": "material metadata boundary conditions",
7907
+ "type": "object",
7908
+ "properties": {
7909
+ "boundaryConditions": {
7910
+ "type": "object",
7911
+ "required": [
7912
+ "type",
7913
+ "offset"
7914
+ ],
7915
+ "properties": {
7916
+ "type": {
7917
+ "type": "string",
7918
+ "enum": [
7919
+ "pbc",
7920
+ "bc1",
7921
+ "bc2",
7922
+ "bc3"
7923
+ ],
7924
+ "default": "pbc",
7925
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
7926
+ },
7927
+ "offset": {
7928
+ "type": "number"
7929
+ }
7930
+ }
7931
+ }
7932
+ },
7933
+ "additionalProperties": true
7934
+ },
7935
+ {
7936
+ "$schema": "http://json-schema.org/draft-07/schema#",
7937
+ "title": "material metadata slab properties",
7938
+ "type": "object",
7939
+ "properties": {
7940
+ "isSlab": {
7941
+ "description": "Whether the material was created as a surface slab",
7942
+ "type": "boolean"
7943
+ },
7944
+ "h": {
7945
+ "description": "Miller index h used to generate the slab",
7946
+ "type": "number"
7947
+ },
7948
+ "k": {
7949
+ "description": "Miller index k used to generate the slab",
7950
+ "type": "number"
7951
+ },
7952
+ "l": {
7953
+ "description": "Miller index l used to generate the slab",
7954
+ "type": "number"
7955
+ },
7956
+ "thickness": {
7957
+ "description": "Slab thickness in number of layers",
7958
+ "type": "number"
7959
+ },
7960
+ "vacuumRatio": {
7961
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
7962
+ "type": "number"
7963
+ },
7964
+ "vx": {
7965
+ "description": "Termination vector component along a",
7966
+ "type": "number"
7967
+ },
7968
+ "vy": {
7969
+ "description": "Termination vector component along b",
7970
+ "type": "number"
7971
+ }
7972
+ },
7973
+ "additionalProperties": true
7974
+ },
7975
+ {
7976
+ "$schema": "http://json-schema.org/draft-07/schema#",
7977
+ "title": "material metadata bulk properties",
7978
+ "type": "object",
7979
+ "properties": {
7980
+ "bulkId": {
7981
+ "description": "Source bulk material id used to generate the slab",
7982
+ "type": "string"
7983
+ }
7984
+ },
7985
+ "additionalProperties": true
7986
+ }
7987
+ ],
7988
+ "additionalProperties": true
7277
7989
  }
7278
7990
  }
7279
7991
  }
@@ -7356,9 +8068,36 @@
7356
8068
  "type": "object",
7357
8069
  "required": [
7358
8070
  "basis",
7359
- "lattice"
8071
+ "lattice",
8072
+ "metadata",
8073
+ "name"
7360
8074
  ],
7361
8075
  "properties": {
8076
+ "_id": {
8077
+ "description": "entity identity",
8078
+ "type": "string"
8079
+ },
8080
+ "slug": {
8081
+ "description": "entity slug",
8082
+ "type": "string"
8083
+ },
8084
+ "systemName": {
8085
+ "type": "string"
8086
+ },
8087
+ "schemaVersion": {
8088
+ "description": "entity's schema version. Used to distinct between different schemas.",
8089
+ "type": "string",
8090
+ "default": "2022.8.16"
8091
+ },
8092
+ "name": {
8093
+ "description": "entity name",
8094
+ "type": "string"
8095
+ },
8096
+ "isDefault": {
8097
+ "description": "Identifies that entity is defaultable",
8098
+ "type": "boolean",
8099
+ "default": false
8100
+ },
7362
8101
  "formula": {
7363
8102
  "description": "reduced chemical formula",
7364
8103
  "type": "string"
@@ -8082,33 +8821,95 @@
8082
8821
  }
8083
8822
  }
8084
8823
  },
8085
- "_id": {
8086
- "description": "entity identity",
8087
- "type": "string"
8088
- },
8089
- "slug": {
8090
- "description": "entity slug",
8091
- "type": "string"
8092
- },
8093
- "systemName": {
8094
- "type": "string"
8095
- },
8096
- "schemaVersion": {
8097
- "description": "entity's schema version. Used to distinct between different schemas.",
8098
- "type": "string",
8099
- "default": "2022.8.16"
8100
- },
8101
- "name": {
8102
- "description": "entity name",
8103
- "type": "string"
8104
- },
8105
- "isDefault": {
8106
- "description": "Identifies that entity is defaultable",
8107
- "type": "boolean",
8108
- "default": false
8109
- },
8110
8824
  "metadata": {
8111
- "type": "object"
8825
+ "type": "object",
8826
+ "default": {},
8827
+ "anyOf": [
8828
+ {
8829
+ "$schema": "http://json-schema.org/draft-07/schema#",
8830
+ "title": "material metadata boundary conditions",
8831
+ "type": "object",
8832
+ "properties": {
8833
+ "boundaryConditions": {
8834
+ "type": "object",
8835
+ "required": [
8836
+ "type",
8837
+ "offset"
8838
+ ],
8839
+ "properties": {
8840
+ "type": {
8841
+ "type": "string",
8842
+ "enum": [
8843
+ "pbc",
8844
+ "bc1",
8845
+ "bc2",
8846
+ "bc3"
8847
+ ],
8848
+ "default": "pbc",
8849
+ "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."
8850
+ },
8851
+ "offset": {
8852
+ "type": "number"
8853
+ }
8854
+ }
8855
+ }
8856
+ },
8857
+ "additionalProperties": true
8858
+ },
8859
+ {
8860
+ "$schema": "http://json-schema.org/draft-07/schema#",
8861
+ "title": "material metadata slab properties",
8862
+ "type": "object",
8863
+ "properties": {
8864
+ "isSlab": {
8865
+ "description": "Whether the material was created as a surface slab",
8866
+ "type": "boolean"
8867
+ },
8868
+ "h": {
8869
+ "description": "Miller index h used to generate the slab",
8870
+ "type": "number"
8871
+ },
8872
+ "k": {
8873
+ "description": "Miller index k used to generate the slab",
8874
+ "type": "number"
8875
+ },
8876
+ "l": {
8877
+ "description": "Miller index l used to generate the slab",
8878
+ "type": "number"
8879
+ },
8880
+ "thickness": {
8881
+ "description": "Slab thickness in number of layers",
8882
+ "type": "number"
8883
+ },
8884
+ "vacuumRatio": {
8885
+ "description": "Vacuum fraction used when scaling the out-of-plane lattice vector",
8886
+ "type": "number"
8887
+ },
8888
+ "vx": {
8889
+ "description": "Termination vector component along a",
8890
+ "type": "number"
8891
+ },
8892
+ "vy": {
8893
+ "description": "Termination vector component along b",
8894
+ "type": "number"
8895
+ }
8896
+ },
8897
+ "additionalProperties": true
8898
+ },
8899
+ {
8900
+ "$schema": "http://json-schema.org/draft-07/schema#",
8901
+ "title": "material metadata bulk properties",
8902
+ "type": "object",
8903
+ "properties": {
8904
+ "bulkId": {
8905
+ "description": "Source bulk material id used to generate the slab",
8906
+ "type": "string"
8907
+ }
8908
+ },
8909
+ "additionalProperties": true
8910
+ }
8911
+ ],
8912
+ "additionalProperties": true
8112
8913
  }
8113
8914
  }
8114
8915
  }