@mat3ra/esse 2025.5.17-2 → 2025.6.14-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 (177) hide show
  1. package/dist/js/example/apse/materials/builders/slab/pymatgen/parameters.json +1 -1
  2. package/dist/js/example/materials_category/pristine_structures/two_dimensional/slab.json +288 -0
  3. package/dist/js/example/{material/reusable/supercell → materials_category_components/entities/auxiliary/three_dimensional}/supercell_matrix_3d.json +2 -2
  4. package/dist/js/example/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +7 -0
  5. package/dist/js/example/materials_category_components/entities/core/three_dimensional/crystal.json +128 -0
  6. package/dist/js/example/materials_category_components/entities/core/three_dimensional/void.json +20 -0
  7. package/dist/js/example/{materials_category/defects/configuration.json → materials_category_components/entities/core/two_dimensional/vacuum.json} +3 -1
  8. package/dist/js/example/materials_category_components/entities/core/zero_dimensional/atom.json +3 -0
  9. package/dist/js/example/materials_category_components/entities/reusable/repetitions.json +5 -0
  10. package/dist/js/example/materials_category_components/operations/core/combinations/merge.json +265 -0
  11. package/dist/js/example/materials_category_components/operations/core/combinations/stack.json +265 -0
  12. package/dist/js/example/materials_category_components/operations/core/combinations/stack_component.json +128 -0
  13. package/dist/js/example/materials_category_components/operations/core/modifications/repeat.json +19 -0
  14. package/dist/js/example/materials_category_components/operations/core/modifications/strain.json +19 -0
  15. package/dist/js/schema/apse/materials/builders/slab/pymatgen/parameters.json +3 -3
  16. package/dist/js/schema/core/primitive/array_of_3_integers.json +11 -0
  17. package/dist/js/schema/{materials_category/defects/two_dimensional/island/condition.json.json → core/reusable/coordinate_conditions.json} +4 -2
  18. package/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json +757 -0
  19. package/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +1792 -0
  20. package/dist/js/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/three_dimensional}/supercell_matrix_3d.json +3 -1
  21. package/dist/js/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/miller_indices.json +5 -5
  22. package/dist/js/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/two_dimensional}/supercell_matrix_2d.json +1 -1
  23. package/dist/js/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/termination.json +2 -2
  24. package/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +22 -0
  25. package/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json +757 -0
  26. package/dist/js/schema/materials_category_components/entities/core/three_dimensional/void.json +76 -0
  27. package/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json +787 -0
  28. package/dist/js/schema/materials_category_components/entities/core/zero_dimensional/atom.json +134 -0
  29. package/dist/js/schema/{material → materials_category_components/entities}/reusable/repetitions.json +1 -1
  30. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json +786 -0
  31. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json +773 -0
  32. package/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json +786 -0
  33. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +947 -0
  34. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +947 -0
  35. package/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +948 -0
  36. package/dist/js/schema/{materials_category/single_material/two_dimensional/slab/configuration.json → materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json} +16 -59
  37. package/dist/js/schema/{materials_category/defects/two_dimensional/grain_boundary_plane/configuration.json → materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.json} +921 -1174
  38. package/dist/js/schema/{materials_category/multi_material/interfaces/configuration.json → materials_category_components/operations/core/combinations/merge.json} +859 -252
  39. package/dist/js/schema/{material/reusable/stack/stack_of_slabs.json → materials_category_components/operations/core/combinations/stack.json} +796 -253
  40. package/dist/js/schema/{material/reusable/slab_configuration_with_termination.json → materials_category_components/operations/core/combinations/stack_component.json} +789 -235
  41. package/dist/js/schema/materials_category_components/operations/core/modifications/repeat.json +42 -0
  42. package/dist/js/schema/materials_category_components/operations/core/modifications/strain.json +24 -0
  43. package/dist/js/schemas.json +1 -1
  44. package/dist/js/types.d.ts +4698 -4703
  45. package/example/apse/materials/builders/slab/pymatgen/parameters.json +1 -1
  46. package/example/materials_category/pristine_structures/two-dimensional/slab.json +38 -0
  47. package/example/materials_category_components/entities/auxiliary/three-dimensional/supercell_matrix_3d.json +5 -0
  48. package/example/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json +1 -0
  49. package/example/materials_category_components/entities/auxiliary/two-dimensional/supercell_matrix_2d.json +4 -0
  50. package/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two-dimensional}/termination.json +1 -1
  51. package/example/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +3 -0
  52. package/example/materials_category_components/entities/core/three-dimensional/crystal.json +3 -0
  53. package/example/materials_category_components/entities/core/three-dimensional/void.json +8 -0
  54. package/example/materials_category_components/entities/core/two-dimensional/vacuum.json +7 -0
  55. package/example/materials_category_components/entities/core/zero-dimensional/atom.json +3 -0
  56. package/example/materials_category_components/entities/reusable/repetitions.json +1 -0
  57. package/example/materials_category_components/operations/core/combinations/merge.json +11 -0
  58. package/example/materials_category_components/operations/core/combinations/stack.json +11 -0
  59. package/example/materials_category_components/operations/core/combinations/stack_component.json +3 -0
  60. package/example/materials_category_components/operations/core/modifications/repeat.json +13 -0
  61. package/example/materials_category_components/operations/core/modifications/strain.json +7 -0
  62. package/package.json +1 -1
  63. package/schema/apse/materials/builders/slab/pymatgen/parameters.json +3 -3
  64. package/schema/core/primitive/array_of_3_integers.json +11 -0
  65. package/schema/core/reusable/coordinate_conditions/index.json +11 -0
  66. package/schema/materials_category/manifest.yaml +268 -0
  67. package/schema/materials_category/pristine_structures/three-dimensional/ideal_crystal.json +11 -0
  68. package/schema/materials_category/pristine_structures/two-dimensional/slab.json +17 -0
  69. package/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/three-dimensional}/supercell_matrix_3d.json +2 -7
  70. package/schema/materials_category_components/entities/auxiliary/two-dimensional/miller_indices.json +16 -0
  71. package/schema/{material/reusable/supercell → materials_category_components/entities/auxiliary/two-dimensional}/supercell_matrix_2d.json +1 -1
  72. package/schema/{material/reusable/slab → materials_category_components/entities/auxiliary/two-dimensional}/termination.json +3 -3
  73. package/schema/materials_category_components/entities/auxiliary/zero-dimensional/crystal_site.json +15 -0
  74. package/schema/materials_category_components/entities/core/three-dimensional/crystal.json +11 -0
  75. package/schema/materials_category_components/entities/core/three-dimensional/void.json +19 -0
  76. package/schema/materials_category_components/entities/core/two-dimensional/vacuum.json +27 -0
  77. package/schema/materials_category_components/entities/core/zero-dimensional/atom.json +15 -0
  78. package/schema/{material → materials_category_components/entities}/reusable/repetitions.json +1 -1
  79. package/schema/materials_category_components/entities/reusable/three-dimensional/strained_non_uniform.json +20 -0
  80. package/schema/materials_category_components/entities/reusable/three-dimensional/strained_uniform.json +20 -0
  81. package/schema/materials_category_components/entities/reusable/three-dimensional/supercell.json +20 -0
  82. package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers.json +12 -0
  83. package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers_unique.json +25 -0
  84. package/schema/materials_category_components/entities/reusable/two-dimensional/atomic_layers_unique_repeated.json +27 -0
  85. package/schema/materials_category_components/entities/reusable/two-dimensional/crystal_lattice_planes.json +25 -0
  86. package/schema/materials_category_components/entities/reusable/two-dimensional/slab_unit_cell.json +33 -0
  87. package/schema/materials_category_components/operations/core/combinations/merge.json +33 -0
  88. package/schema/materials_category_components/operations/core/combinations/stack.json +21 -0
  89. package/schema/materials_category_components/operations/core/combinations/stack_component.json +14 -0
  90. package/schema/materials_category_components/operations/core/modifications/repeat.json +10 -0
  91. package/schema/materials_category_components/operations/core/modifications/strain.json +10 -0
  92. package/dist/js/example/material/builders/base/selector_parameters.json +0 -3
  93. package/dist/js/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -6
  94. package/dist/js/example/material/reusable/repetitions.json +0 -5
  95. package/dist/js/example/material/reusable/slab/number_of_layers.json +0 -1
  96. package/dist/js/example/material/reusable/slab/vacuum.json +0 -1
  97. package/dist/js/example/material/reusable/slab_configuration_with_termination.json +0 -156
  98. package/dist/js/example/materials_category/defects/by_host/two_dimensional/adatom/configuration.json +0 -138
  99. package/dist/js/example/materials_category/defects/by_host/two_dimensional/point/configuration.json +0 -135
  100. package/dist/js/example/materials_category/defects/one_dimensional/terrace/configuration.json +0 -144
  101. package/dist/js/example/materials_category/defects/two_dimensional/grain_boundary_plane/configuration.json +0 -475
  102. package/dist/js/example/materials_category/defects/zero_dimensional/complex/pair/configuration.json +0 -406
  103. package/dist/js/example/materials_category/defects/zero_dimensional/point/configuration.json +0 -138
  104. package/dist/js/example/materials_category/defects/zero_dimensional/point/interstitial/configuration.json +0 -139
  105. package/dist/js/example/materials_category/defects/zero_dimensional/point/substitution/configuration.json +0 -138
  106. package/dist/js/example/materials_category/defects/zero_dimensional/point/vacancy/configuration.json +0 -137
  107. package/dist/js/example/materials_category/single_material/two_dimensional/slab/configuration.json +0 -150
  108. package/dist/js/schema/material/builders/base/selector_parameters.json +0 -15
  109. package/dist/js/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +0 -33
  110. package/dist/js/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -159
  111. package/dist/js/schema/material/reusable/slab/enums/exposed_face.json +0 -11
  112. package/dist/js/schema/material/reusable/slab/number_of_layers.json +0 -9
  113. package/dist/js/schema/material/reusable/slab/vacuum.json +0 -9
  114. package/dist/js/schema/material/reusable/stack/slab_in_stack.json +0 -1005
  115. package/dist/js/schema/material/reusable/stack/stack_of_two_slabs.json +0 -1033
  116. package/dist/js/schema/materials_category/defects/by_host/two_dimensional/adatom/configuration.json +0 -926
  117. package/dist/js/schema/materials_category/defects/by_host/two_dimensional/layered/configuration.json +0 -794
  118. package/dist/js/schema/materials_category/defects/by_host/two_dimensional/point/configuration.json +0 -803
  119. package/dist/js/schema/materials_category/defects/configuration.json +0 -786
  120. package/dist/js/schema/materials_category/defects/enums/point_defect_type.json +0 -11
  121. package/dist/js/schema/materials_category/defects/one_dimensional/terrace/configuration.json +0 -831
  122. package/dist/js/schema/materials_category/defects/two_dimensional/island/configuration.json +0 -845
  123. package/dist/js/schema/materials_category/defects/zero_dimensional/complex/pair/configuration.json +0 -2634
  124. package/dist/js/schema/materials_category/defects/zero_dimensional/point/configuration.json +0 -925
  125. package/dist/js/schema/materials_category/defects/zero_dimensional/point/interstitial/configuration.json +0 -926
  126. package/dist/js/schema/materials_category/defects/zero_dimensional/point/substitution/configuration.json +0 -926
  127. package/dist/js/schema/materials_category/defects/zero_dimensional/point/vacancy/configuration.json +0 -926
  128. package/example/material/builders/base/selector_parameters.json +0 -3
  129. package/example/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -6
  130. package/example/material/reusable/repetitions.json +0 -1
  131. package/example/material/reusable/slab/miller_indices.json +0 -5
  132. package/example/material/reusable/slab/number_of_layers.json +0 -1
  133. package/example/material/reusable/slab/vacuum.json +0 -1
  134. package/example/material/reusable/slab_configuration_with_termination.json +0 -8
  135. package/example/material/reusable/supercell/supercell_matrix_2d.json +0 -10
  136. package/example/material/reusable/supercell/supercell_matrix_3d.json +0 -11
  137. package/example/materials_category/defects/by_host/two-dimensional/adatom/configuration.json +0 -11
  138. package/example/materials_category/defects/by_host/two-dimensional/point/configuration.json +0 -8
  139. package/example/materials_category/defects/configuration.json +0 -5
  140. package/example/materials_category/defects/one-dimensional/terrace/configuration.json +0 -19
  141. package/example/materials_category/defects/two-dimensional/grain_boundary_plane/configuration.json +0 -21
  142. package/example/materials_category/defects/zero-dimensional/complex/pair/configuration.json +0 -9
  143. package/example/materials_category/defects/zero-dimensional/point/configuration.json +0 -11
  144. package/example/materials_category/defects/zero-dimensional/point/interstitial/configuration.json +0 -14
  145. package/example/materials_category/defects/zero-dimensional/point/substitution/configuration.json +0 -13
  146. package/example/materials_category/defects/zero-dimensional/point/vacancy/configuration.json +0 -12
  147. package/example/materials_category/single_material/two_dimensional/slab/configuration.json +0 -25
  148. package/schema/material/builders/base/selector_parameters.json +0 -15
  149. package/schema/material/builders/single_material/two_dimensional/slab/builder_parameters.json +0 -12
  150. package/schema/material/builders/single_material/two_dimensional/slab/selector_parameters.json +0 -12
  151. package/schema/material/reusable/slab/enums/exposed_face.json +0 -11
  152. package/schema/material/reusable/slab/miller_indices.json +0 -17
  153. package/schema/material/reusable/slab/number_of_layers.json +0 -9
  154. package/schema/material/reusable/slab/vacuum.json +0 -9
  155. package/schema/material/reusable/slab_configuration_with_termination.json +0 -19
  156. package/schema/material/reusable/stack/slab_in_stack.json +0 -26
  157. package/schema/material/reusable/stack/stack_of_slabs.json +0 -31
  158. package/schema/material/reusable/stack/stack_of_two_slabs.json +0 -17
  159. package/schema/materials_category/defects/by_host/two-dimensional/adatom/configuration.json +0 -16
  160. package/schema/materials_category/defects/by_host/two-dimensional/layered/configuration.json +0 -16
  161. package/schema/materials_category/defects/by_host/two-dimensional/point/configuration.json +0 -26
  162. package/schema/materials_category/defects/configuration.json +0 -34
  163. package/schema/materials_category/defects/one-dimensional/terrace/configuration.json +0 -44
  164. package/schema/materials_category/defects/two-dimensional/grain_boundary_plane/configuration.json +0 -20
  165. package/schema/materials_category/defects/two-dimensional/island/condition.json +0 -9
  166. package/schema/materials_category/defects/two-dimensional/island/configuration.json +0 -18
  167. package/schema/materials_category/defects/zero-dimensional/complex/pair/configuration.json +0 -20
  168. package/schema/materials_category/defects/zero-dimensional/point/configuration.json +0 -34
  169. package/schema/materials_category/defects/zero-dimensional/point/enums/type.json +0 -11
  170. package/schema/materials_category/defects/zero-dimensional/point/interstitial/configuration.json +0 -16
  171. package/schema/materials_category/defects/zero-dimensional/point/substitution/configuration.json +0 -16
  172. package/schema/materials_category/defects/zero-dimensional/point/vacancy/configuration.json +0 -16
  173. package/schema/materials_category/multi-material/interfaces/configuration.json +0 -12
  174. package/schema/materials_category/single_material/two_dimensional/slab/configuration.json +0 -36
  175. /package/dist/js/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/miller_indices.json +0 -0
  176. /package/dist/js/example/{material/reusable/supercell → materials_category_components/entities/auxiliary/two_dimensional}/supercell_matrix_2d.json +0 -0
  177. /package/dist/js/example/{material/reusable/slab → materials_category_components/entities/auxiliary/two_dimensional}/termination.json +0 -0
@@ -1,1043 +1,994 @@
1
1
  {
2
- "$id": "materials-category/defects/two-dimensional/grain-boundary-plane/configuration",
2
+ "$id": "materials-category-components/entities/reusable/two-dimensional/slab-unit-cell",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "Grain Boundary Plane Configuration Schema",
5
- "description": "Configuration for a grain boundary between two phases with different surfaces facing each other",
4
+ "title": "Slab Unit Cell Schema",
5
+ "description": "A slab unit cell consisting of repeated unique atomic layers and vacuum",
6
6
  "type": "object",
7
7
  "required": [
8
- "slab_configuration",
9
- "stack_slab_configurations",
10
- "termination"
8
+ "stack_components",
9
+ "direction"
11
10
  ],
12
11
  "properties": {
13
- "stacking_direction": {
14
- "default": "x",
15
- "type": "string",
16
- "description": "The axis along which the slabs are stacked",
17
- "$schema": "http://json-schema.org/draft-07/schema#",
18
- "title": "Axis Enum",
19
- "enum": [
20
- "x",
21
- "y",
22
- "z"
23
- ]
24
- },
25
- "slab_configuration": {
26
- "$schema": "http://json-schema.org/draft-07/schema#",
27
- "title": "Slab Configuration Schema",
28
- "description": "Configuration for creating a slab from a bulk material",
29
- "type": "object",
30
- "properties": {
31
- "bulk": {
32
- "$schema": "http://json-schema.org/draft-07/schema#",
33
- "title": "material schema",
34
- "type": "object",
35
- "required": [
36
- "basis",
37
- "lattice"
38
- ],
39
- "properties": {
40
- "formula": {
41
- "description": "reduced chemical formula",
42
- "type": "string"
43
- },
44
- "unitCellFormula": {
45
- "description": "chemical formula based on the number of atoms of each element in the supercell",
46
- "type": "string"
47
- },
48
- "basis": {
49
- "$schema": "http://json-schema.org/draft-07/schema#",
50
- "title": "basis schema",
51
- "type": "object",
52
- "required": [
53
- "elements",
54
- "coordinates"
55
- ],
56
- "properties": {
57
- "elements": {
58
- "$schema": "http://json-schema.org/draft-07/schema#",
59
- "title": "atomic elements schema",
60
- "description": "atomic elements schema",
61
- "type": "array",
62
- "items": {
63
- "$schema": "http://json-schema.org/draft-07/schema#",
64
- "title": "atomic element schema",
65
- "description": "chemical element of an atom according to the periodic table",
66
- "type": "object",
67
- "required": [
68
- "id",
69
- "value"
70
- ],
71
- "properties": {
72
- "value": {
73
- "description": "All elements, including extra elements",
74
- "anyOf": [
75
- {
76
- "enum": [
77
- "H",
78
- "He",
79
- "Li",
80
- "Be",
81
- "B",
82
- "C",
83
- "N",
84
- "O",
85
- "F",
86
- "Ne",
87
- "Na",
88
- "Mg",
89
- "Al",
90
- "Si",
91
- "P",
92
- "S",
93
- "Cl",
94
- "Ar",
95
- "K",
96
- "Ca",
97
- "Sc",
98
- "Ti",
99
- "V",
100
- "Cr",
101
- "Mn",
102
- "Fe",
103
- "Co",
104
- "Ni",
105
- "Cu",
106
- "Zn",
107
- "Ga",
108
- "Ge",
109
- "As",
110
- "Se",
111
- "Br",
112
- "Kr",
113
- "Rb",
114
- "Sr",
115
- "Y",
116
- "Zr",
117
- "Nb",
118
- "Mo",
119
- "Tc",
120
- "Ru",
121
- "Rh",
122
- "Pd",
123
- "Ag",
124
- "Cd",
125
- "In",
126
- "Sn",
127
- "Sb",
128
- "Te",
129
- "I",
130
- "Xe",
131
- "Cs",
132
- "Ba",
133
- "La",
134
- "Ce",
135
- "Pr",
136
- "Nd",
137
- "Pm",
138
- "Sm",
139
- "Eu",
140
- "Gd",
141
- "Tb",
142
- "Dy",
143
- "Ho",
144
- "Er",
145
- "Tm",
146
- "Yb",
147
- "Lu",
148
- "Hf",
149
- "Ta",
150
- "W",
151
- "Re",
152
- "Os",
153
- "Ir",
154
- "Pt",
155
- "Au",
156
- "Hg",
157
- "Tl",
158
- "Pb",
159
- "Bi",
160
- "Po",
161
- "At",
162
- "Rn",
163
- "Fr",
164
- "Ra",
165
- "Ac",
166
- "Th",
167
- "Pa",
168
- "U",
169
- "Np",
170
- "Pu",
171
- "Am",
172
- "Cm",
173
- "Bk",
174
- "Cf",
175
- "Es",
176
- "Fm",
177
- "Md",
178
- "No",
179
- "Lr",
180
- "Rf",
181
- "Db",
182
- "Sg",
183
- "Bh",
184
- "Hs",
185
- "Mt",
186
- "Ds",
187
- "Rg",
188
- "Cn",
189
- "Nh",
190
- "Fl",
191
- "Mc",
192
- "Lv",
193
- "Ts",
194
- "Og"
195
- ]
196
- },
197
- {
198
- "description": "Extra elements, used for convenience purposed",
199
- "enum": [
200
- "X",
201
- "Vac"
202
- ]
203
- }
204
- ],
205
- "type": "string"
12
+ "stack_components": {
13
+ "type": "array",
14
+ "minItems": 2,
15
+ "description": "Components of the slab unit cell: repeated unique atomic layers and vacuum",
16
+ "items": {
17
+ "oneOf": [
18
+ {
19
+ "$schema": "http://json-schema.org/draft-07/schema#",
20
+ "title": "Atomic Layers Unique Repeated Schema",
21
+ "description": "Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination",
22
+ "type": "object",
23
+ "required": [
24
+ "crystal",
25
+ "miller_indices",
26
+ "number_of_repetitions",
27
+ "termination_top",
28
+ "use_conventional_cell"
29
+ ],
30
+ "properties": {
31
+ "termination_top": {
32
+ "$schema": "http://json-schema.org/draft-07/schema#",
33
+ "title": "Termination Schema",
34
+ "description": "Defines a specific termination of a slab",
35
+ "type": "object",
36
+ "required": [
37
+ "chemical_elements",
38
+ "space_group_symmetry_label"
39
+ ],
40
+ "properties": {
41
+ "chemical_elements": {
42
+ "title": "Chemical Elements",
43
+ "description": "Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')",
44
+ "type": "string",
45
+ "anyOf": [
46
+ {
47
+ "enum": [
48
+ "H",
49
+ "He",
50
+ "Li",
51
+ "Be",
52
+ "B",
53
+ "C",
54
+ "N",
55
+ "O",
56
+ "F",
57
+ "Ne",
58
+ "Na",
59
+ "Mg",
60
+ "Al",
61
+ "Si",
62
+ "P",
63
+ "S",
64
+ "Cl",
65
+ "Ar",
66
+ "K",
67
+ "Ca",
68
+ "Sc",
69
+ "Ti",
70
+ "V",
71
+ "Cr",
72
+ "Mn",
73
+ "Fe",
74
+ "Co",
75
+ "Ni",
76
+ "Cu",
77
+ "Zn",
78
+ "Ga",
79
+ "Ge",
80
+ "As",
81
+ "Se",
82
+ "Br",
83
+ "Kr",
84
+ "Rb",
85
+ "Sr",
86
+ "Y",
87
+ "Zr",
88
+ "Nb",
89
+ "Mo",
90
+ "Tc",
91
+ "Ru",
92
+ "Rh",
93
+ "Pd",
94
+ "Ag",
95
+ "Cd",
96
+ "In",
97
+ "Sn",
98
+ "Sb",
99
+ "Te",
100
+ "I",
101
+ "Xe",
102
+ "Cs",
103
+ "Ba",
104
+ "La",
105
+ "Ce",
106
+ "Pr",
107
+ "Nd",
108
+ "Pm",
109
+ "Sm",
110
+ "Eu",
111
+ "Gd",
112
+ "Tb",
113
+ "Dy",
114
+ "Ho",
115
+ "Er",
116
+ "Tm",
117
+ "Yb",
118
+ "Lu",
119
+ "Hf",
120
+ "Ta",
121
+ "W",
122
+ "Re",
123
+ "Os",
124
+ "Ir",
125
+ "Pt",
126
+ "Au",
127
+ "Hg",
128
+ "Tl",
129
+ "Pb",
130
+ "Bi",
131
+ "Po",
132
+ "At",
133
+ "Rn",
134
+ "Fr",
135
+ "Ra",
136
+ "Ac",
137
+ "Th",
138
+ "Pa",
139
+ "U",
140
+ "Np",
141
+ "Pu",
142
+ "Am",
143
+ "Cm",
144
+ "Bk",
145
+ "Cf",
146
+ "Es",
147
+ "Fm",
148
+ "Md",
149
+ "No",
150
+ "Lr",
151
+ "Rf",
152
+ "Db",
153
+ "Sg",
154
+ "Bh",
155
+ "Hs",
156
+ "Mt",
157
+ "Ds",
158
+ "Rg",
159
+ "Cn",
160
+ "Nh",
161
+ "Fl",
162
+ "Mc",
163
+ "Lv",
164
+ "Ts",
165
+ "Og"
166
+ ]
206
167
  },
207
- "id": {
208
- "description": "integer id of this entry",
209
- "type": "integer"
168
+ {
169
+ "type": "string",
170
+ "pattern": "^([A-Z][a-z]?[0-9]*)+$"
210
171
  }
211
- }
172
+ ]
173
+ },
174
+ "space_group_symmetry_label": {
175
+ "title": "Space Group Symmetry Label",
176
+ "description": "Space group symmetry designation for the termination",
177
+ "type": "string"
212
178
  }
213
- },
214
- "coordinates": {
215
- "$schema": "http://json-schema.org/draft-07/schema#",
216
- "title": "atomic coordinates schema",
217
- "description": "atomic coordinates schema",
218
- "type": "array",
219
- "items": {
179
+ }
180
+ },
181
+ "number_of_repetitions": {
182
+ "type": "integer",
183
+ "minimum": 1,
184
+ "description": "Number of repetitions of the unique atomic layers"
185
+ },
186
+ "crystal": {
187
+ "$schema": "http://json-schema.org/draft-07/schema#",
188
+ "title": "Crystal Schema",
189
+ "description": "A crystal structure, referencing the base material schema",
190
+ "type": "object",
191
+ "required": [
192
+ "basis",
193
+ "lattice"
194
+ ],
195
+ "properties": {
196
+ "formula": {
197
+ "description": "reduced chemical formula",
198
+ "type": "string"
199
+ },
200
+ "unitCellFormula": {
201
+ "description": "chemical formula based on the number of atoms of each element in the supercell",
202
+ "type": "string"
203
+ },
204
+ "basis": {
220
205
  "$schema": "http://json-schema.org/draft-07/schema#",
221
- "title": "atomic coordinate schema",
222
- "description": "coordinate of an atom",
206
+ "title": "basis schema",
223
207
  "type": "object",
224
208
  "required": [
225
- "id",
226
- "value"
209
+ "elements",
210
+ "coordinates"
227
211
  ],
228
212
  "properties": {
229
- "value": {
213
+ "elements": {
230
214
  "$schema": "http://json-schema.org/draft-07/schema#",
231
- "title": "coordinate 3d schema",
215
+ "title": "atomic elements schema",
216
+ "description": "atomic elements schema",
232
217
  "type": "array",
233
- "minItems": 3,
234
- "maxItems": 3,
235
- "description": "value of this entry",
236
218
  "items": {
237
- "type": "number"
219
+ "$schema": "http://json-schema.org/draft-07/schema#",
220
+ "title": "atomic element schema",
221
+ "description": "chemical element of an atom according to the periodic table",
222
+ "type": "object",
223
+ "required": [
224
+ "id",
225
+ "value"
226
+ ],
227
+ "properties": {
228
+ "value": {
229
+ "description": "All elements, including extra elements",
230
+ "anyOf": [
231
+ {
232
+ "enum": [
233
+ "H",
234
+ "He",
235
+ "Li",
236
+ "Be",
237
+ "B",
238
+ "C",
239
+ "N",
240
+ "O",
241
+ "F",
242
+ "Ne",
243
+ "Na",
244
+ "Mg",
245
+ "Al",
246
+ "Si",
247
+ "P",
248
+ "S",
249
+ "Cl",
250
+ "Ar",
251
+ "K",
252
+ "Ca",
253
+ "Sc",
254
+ "Ti",
255
+ "V",
256
+ "Cr",
257
+ "Mn",
258
+ "Fe",
259
+ "Co",
260
+ "Ni",
261
+ "Cu",
262
+ "Zn",
263
+ "Ga",
264
+ "Ge",
265
+ "As",
266
+ "Se",
267
+ "Br",
268
+ "Kr",
269
+ "Rb",
270
+ "Sr",
271
+ "Y",
272
+ "Zr",
273
+ "Nb",
274
+ "Mo",
275
+ "Tc",
276
+ "Ru",
277
+ "Rh",
278
+ "Pd",
279
+ "Ag",
280
+ "Cd",
281
+ "In",
282
+ "Sn",
283
+ "Sb",
284
+ "Te",
285
+ "I",
286
+ "Xe",
287
+ "Cs",
288
+ "Ba",
289
+ "La",
290
+ "Ce",
291
+ "Pr",
292
+ "Nd",
293
+ "Pm",
294
+ "Sm",
295
+ "Eu",
296
+ "Gd",
297
+ "Tb",
298
+ "Dy",
299
+ "Ho",
300
+ "Er",
301
+ "Tm",
302
+ "Yb",
303
+ "Lu",
304
+ "Hf",
305
+ "Ta",
306
+ "W",
307
+ "Re",
308
+ "Os",
309
+ "Ir",
310
+ "Pt",
311
+ "Au",
312
+ "Hg",
313
+ "Tl",
314
+ "Pb",
315
+ "Bi",
316
+ "Po",
317
+ "At",
318
+ "Rn",
319
+ "Fr",
320
+ "Ra",
321
+ "Ac",
322
+ "Th",
323
+ "Pa",
324
+ "U",
325
+ "Np",
326
+ "Pu",
327
+ "Am",
328
+ "Cm",
329
+ "Bk",
330
+ "Cf",
331
+ "Es",
332
+ "Fm",
333
+ "Md",
334
+ "No",
335
+ "Lr",
336
+ "Rf",
337
+ "Db",
338
+ "Sg",
339
+ "Bh",
340
+ "Hs",
341
+ "Mt",
342
+ "Ds",
343
+ "Rg",
344
+ "Cn",
345
+ "Nh",
346
+ "Fl",
347
+ "Mc",
348
+ "Lv",
349
+ "Ts",
350
+ "Og"
351
+ ]
352
+ },
353
+ {
354
+ "description": "Extra elements, used for convenience purposed",
355
+ "enum": [
356
+ "X",
357
+ "Vac"
358
+ ]
359
+ }
360
+ ],
361
+ "type": "string"
362
+ },
363
+ "id": {
364
+ "description": "integer id of this entry",
365
+ "type": "integer"
366
+ }
367
+ }
238
368
  }
239
369
  },
240
- "id": {
241
- "description": "integer id of this entry",
242
- "type": "integer"
243
- }
244
- }
245
- }
246
- },
247
- "units": {
248
- "$schema": "http://json-schema.org/draft-07/schema#",
249
- "title": "basis units enum",
250
- "enum": [
251
- "crystal",
252
- "cartesian"
253
- ],
254
- "default": "crystal"
255
- },
256
- "labels": {
257
- "$schema": "http://json-schema.org/draft-07/schema#",
258
- "title": "atomic labels schema",
259
- "description": "atomic labels schema",
260
- "type": "array",
261
- "items": {
262
- "$schema": "http://json-schema.org/draft-07/schema#",
263
- "title": "atomic label schema",
264
- "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
265
- "type": "object",
266
- "required": [
267
- "id",
268
- "value"
269
- ],
270
- "properties": {
271
- "value": {
272
- "anyOf": [
273
- {
274
- "type": [
275
- "integer",
276
- "string",
277
- "number"
278
- ]
279
- },
280
- {
281
- "$schema": "http://json-schema.org/draft-07/schema#",
282
- "title": "integer positive single digit",
283
- "type": "integer",
284
- "minimum": 1,
285
- "maximum": 9
370
+ "coordinates": {
371
+ "$schema": "http://json-schema.org/draft-07/schema#",
372
+ "title": "atomic coordinates schema",
373
+ "description": "atomic coordinates schema",
374
+ "type": "array",
375
+ "items": {
376
+ "$schema": "http://json-schema.org/draft-07/schema#",
377
+ "title": "atomic coordinate schema",
378
+ "description": "coordinate of an atom",
379
+ "type": "object",
380
+ "required": [
381
+ "id",
382
+ "value"
383
+ ],
384
+ "properties": {
385
+ "value": {
386
+ "$schema": "http://json-schema.org/draft-07/schema#",
387
+ "title": "coordinate 3d schema",
388
+ "type": "array",
389
+ "minItems": 3,
390
+ "maxItems": 3,
391
+ "description": "value of this entry",
392
+ "items": {
393
+ "type": "number"
394
+ }
395
+ },
396
+ "id": {
397
+ "description": "integer id of this entry",
398
+ "type": "integer"
399
+ }
286
400
  }
401
+ }
402
+ },
403
+ "units": {
404
+ "$schema": "http://json-schema.org/draft-07/schema#",
405
+ "title": "basis units enum",
406
+ "enum": [
407
+ "crystal",
408
+ "cartesian"
287
409
  ],
288
- "description": "value of this entry"
410
+ "default": "crystal"
289
411
  },
290
- "id": {
291
- "description": "integer id of this entry",
292
- "type": "integer"
293
- }
294
- }
295
- }
296
- }
297
- }
298
- },
299
- "lattice": {
300
- "$schema": "http://json-schema.org/draft-07/schema#",
301
- "title": "lattice schema",
302
- "type": "object",
303
- "required": [
304
- "a",
305
- "b",
306
- "c",
307
- "alpha",
308
- "beta",
309
- "gamma"
310
- ],
311
- "properties": {
312
- "a": {
313
- "description": "length of the first lattice vector",
314
- "type": "number"
315
- },
316
- "b": {
317
- "description": "length of the second lattice vector",
318
- "type": "number"
319
- },
320
- "c": {
321
- "description": "length of the third lattice vector",
322
- "type": "number"
323
- },
324
- "alpha": {
325
- "description": "angle between first and second lattice vector",
326
- "type": "number"
327
- },
328
- "beta": {
329
- "description": "angle between second and third lattice vector",
330
- "type": "number"
331
- },
332
- "gamma": {
333
- "description": "angle between first and third lattice vector",
334
- "type": "number"
335
- },
336
- "vectors": {
337
- "$schema": "http://json-schema.org/draft-07/schema#",
338
- "title": "lattice vectors schema",
339
- "type": "object",
340
- "required": [
341
- "a",
342
- "b",
343
- "c"
344
- ],
345
- "properties": {
346
- "a": {
347
- "$schema": "http://json-schema.org/draft-07/schema#",
348
- "title": "vector 3d schema",
349
- "type": "array",
350
- "minItems": 3,
351
- "maxItems": 3,
352
- "items": {
353
- "type": "number"
354
- }
355
- },
356
- "b": {
357
- "$schema": "http://json-schema.org/draft-07/schema#",
358
- "title": "vector 3d schema",
359
- "type": "array",
360
- "minItems": 3,
361
- "maxItems": 3,
362
- "items": {
363
- "type": "number"
364
- }
365
- },
366
- "c": {
367
- "$schema": "http://json-schema.org/draft-07/schema#",
368
- "title": "vector 3d schema",
369
- "type": "array",
370
- "minItems": 3,
371
- "maxItems": 3,
372
- "items": {
373
- "type": "number"
412
+ "labels": {
413
+ "$schema": "http://json-schema.org/draft-07/schema#",
414
+ "title": "atomic labels schema",
415
+ "description": "atomic labels schema",
416
+ "type": "array",
417
+ "items": {
418
+ "$schema": "http://json-schema.org/draft-07/schema#",
419
+ "title": "atomic label schema",
420
+ "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
421
+ "type": "object",
422
+ "required": [
423
+ "id",
424
+ "value"
425
+ ],
426
+ "properties": {
427
+ "value": {
428
+ "anyOf": [
429
+ {
430
+ "type": [
431
+ "integer",
432
+ "string",
433
+ "number"
434
+ ]
435
+ },
436
+ {
437
+ "$schema": "http://json-schema.org/draft-07/schema#",
438
+ "title": "integer positive single digit",
439
+ "type": "integer",
440
+ "minimum": 1,
441
+ "maximum": 9
442
+ }
443
+ ],
444
+ "description": "value of this entry"
445
+ },
446
+ "id": {
447
+ "description": "integer id of this entry",
448
+ "type": "integer"
449
+ }
450
+ }
451
+ }
374
452
  }
375
- },
376
- "alat": {
377
- "description": "lattice parameter for fractional coordinates",
378
- "type": "number",
379
- "default": 1
380
- },
381
- "units": {
382
- "$schema": "http://json-schema.org/draft-07/schema#",
383
- "title": "lattice vectors units enum",
384
- "enum": [
385
- "angstrom",
386
- "bohr"
387
- ],
388
- "default": "angstrom"
389
453
  }
390
- }
391
- },
392
- "type": {
393
- "$schema": "http://json-schema.org/draft-07/schema#",
394
- "title": "lattice type enum",
395
- "type": "string",
396
- "enum": [
397
- "CUB",
398
- "BCC",
399
- "FCC",
400
- "TET",
401
- "MCL",
402
- "ORC",
403
- "ORCC",
404
- "ORCF",
405
- "ORCI",
406
- "HEX",
407
- "BCT",
408
- "TRI",
409
- "MCLC",
410
- "RHL"
411
- ],
412
- "default": "TRI"
413
- },
414
- "units": {
415
- "$schema": "http://json-schema.org/draft-07/schema#",
416
- "title": "Lattice units schema",
417
- "type": "object",
418
- "default": {
419
- "length": "angstrom",
420
- "angle": "degree"
421
454
  },
422
- "properties": {
423
- "length": {
424
- "$schema": "http://json-schema.org/draft-07/schema#",
425
- "title": "lattice units length enum",
426
- "enum": [
427
- "angstrom",
428
- "bohr"
429
- ],
430
- "default": "angstrom"
431
- },
432
- "angle": {
433
- "$schema": "http://json-schema.org/draft-07/schema#",
434
- "title": "lattice units angle enum",
435
- "enum": [
436
- "degree",
437
- "radian"
438
- ],
439
- "default": "degree"
440
- }
441
- }
442
- }
443
- }
444
- },
445
- "derivedProperties": {
446
- "$schema": "http://json-schema.org/draft-07/schema#",
447
- "title": "derived properties schema",
448
- "type": "array",
449
- "items": {
450
- "oneOf": [
451
- {
455
+ "lattice": {
452
456
  "$schema": "http://json-schema.org/draft-07/schema#",
453
- "title": "volume schema",
457
+ "title": "lattice schema",
454
458
  "type": "object",
455
459
  "required": [
456
- "value"
460
+ "a",
461
+ "b",
462
+ "c",
463
+ "alpha",
464
+ "beta",
465
+ "gamma"
457
466
  ],
458
467
  "properties": {
459
- "name": {
460
- "enum": [
461
- "volume"
462
- ]
468
+ "a": {
469
+ "description": "length of the first lattice vector",
470
+ "type": "number"
463
471
  },
464
- "units": {
465
- "enum": [
466
- "angstrom^3"
467
- ]
472
+ "b": {
473
+ "description": "length of the second lattice vector",
474
+ "type": "number"
468
475
  },
469
- "value": {
476
+ "c": {
477
+ "description": "length of the third lattice vector",
470
478
  "type": "number"
471
- }
472
- }
473
- },
474
- {
475
- "$schema": "http://json-schema.org/draft-07/schema#",
476
- "title": "density schema",
477
- "type": "object",
478
- "required": [
479
- "value"
480
- ],
481
- "properties": {
482
- "name": {
483
- "enum": [
484
- "density"
485
- ]
486
479
  },
487
- "units": {
488
- "enum": [
489
- "g/cm^3"
490
- ]
480
+ "alpha": {
481
+ "description": "angle between first and second lattice vector",
482
+ "type": "number"
491
483
  },
492
- "value": {
484
+ "beta": {
485
+ "description": "angle between second and third lattice vector",
493
486
  "type": "number"
494
- }
495
- }
496
- },
497
- {
498
- "$schema": "http://json-schema.org/draft-07/schema#",
499
- "title": "symmetry schema",
500
- "type": "object",
501
- "properties": {
502
- "pointGroupSymbol": {
503
- "description": "point group symbol in Schoenflies notation",
504
- "type": "string"
505
487
  },
506
- "spaceGroupSymbol": {
507
- "description": "space group symbol in Hermann–Mauguin notation",
508
- "type": "string"
488
+ "gamma": {
489
+ "description": "angle between first and third lattice vector",
490
+ "type": "number"
491
+ },
492
+ "vectors": {
493
+ "$schema": "http://json-schema.org/draft-07/schema#",
494
+ "title": "lattice vectors schema",
495
+ "type": "object",
496
+ "required": [
497
+ "a",
498
+ "b",
499
+ "c"
500
+ ],
501
+ "properties": {
502
+ "a": {
503
+ "$schema": "http://json-schema.org/draft-07/schema#",
504
+ "title": "vector 3d schema",
505
+ "type": "array",
506
+ "minItems": 3,
507
+ "maxItems": 3,
508
+ "items": {
509
+ "type": "number"
510
+ }
511
+ },
512
+ "b": {
513
+ "$schema": "http://json-schema.org/draft-07/schema#",
514
+ "title": "vector 3d schema",
515
+ "type": "array",
516
+ "minItems": 3,
517
+ "maxItems": 3,
518
+ "items": {
519
+ "type": "number"
520
+ }
521
+ },
522
+ "c": {
523
+ "$schema": "http://json-schema.org/draft-07/schema#",
524
+ "title": "vector 3d schema",
525
+ "type": "array",
526
+ "minItems": 3,
527
+ "maxItems": 3,
528
+ "items": {
529
+ "type": "number"
530
+ }
531
+ },
532
+ "alat": {
533
+ "description": "lattice parameter for fractional coordinates",
534
+ "type": "number",
535
+ "default": 1
536
+ },
537
+ "units": {
538
+ "$schema": "http://json-schema.org/draft-07/schema#",
539
+ "title": "lattice vectors units enum",
540
+ "enum": [
541
+ "angstrom",
542
+ "bohr"
543
+ ],
544
+ "default": "angstrom"
545
+ }
546
+ }
547
+ },
548
+ "type": {
549
+ "$schema": "http://json-schema.org/draft-07/schema#",
550
+ "title": "lattice type enum",
551
+ "type": "string",
552
+ "enum": [
553
+ "CUB",
554
+ "BCC",
555
+ "FCC",
556
+ "TET",
557
+ "MCL",
558
+ "ORC",
559
+ "ORCC",
560
+ "ORCF",
561
+ "ORCI",
562
+ "HEX",
563
+ "BCT",
564
+ "TRI",
565
+ "MCLC",
566
+ "RHL"
567
+ ],
568
+ "default": "TRI"
509
569
  },
510
- "tolerance": {
511
- "type": "object",
512
- "description": "tolerance used for symmetry calculation",
570
+ "units": {
513
571
  "$schema": "http://json-schema.org/draft-07/schema#",
514
- "title": "scalar schema",
515
- "required": [
516
- "value"
517
- ],
572
+ "title": "Lattice units schema",
573
+ "type": "object",
574
+ "default": {
575
+ "length": "angstrom",
576
+ "angle": "degree"
577
+ },
518
578
  "properties": {
519
- "units": {
579
+ "length": {
580
+ "$schema": "http://json-schema.org/draft-07/schema#",
581
+ "title": "lattice units length enum",
520
582
  "enum": [
521
- "angstrom"
522
- ]
583
+ "angstrom",
584
+ "bohr"
585
+ ],
586
+ "default": "angstrom"
523
587
  },
524
- "value": {
525
- "type": "number"
588
+ "angle": {
589
+ "$schema": "http://json-schema.org/draft-07/schema#",
590
+ "title": "lattice units angle enum",
591
+ "enum": [
592
+ "degree",
593
+ "radian"
594
+ ],
595
+ "default": "degree"
526
596
  }
527
597
  }
528
- },
529
- "name": {
530
- "enum": [
531
- "symmetry"
532
- ]
533
598
  }
534
599
  }
535
600
  },
536
- {
601
+ "derivedProperties": {
537
602
  "$schema": "http://json-schema.org/draft-07/schema#",
538
- "title": "elemental-ratio",
539
- "description": "ration of this element in the compound",
540
- "type": "object",
541
- "required": [
542
- "value"
543
- ],
544
- "properties": {
545
- "name": {
546
- "enum": [
547
- "elemental_ratio"
548
- ]
549
- },
550
- "value": {
551
- "type": "number",
552
- "minimum": 0,
553
- "maximum": 1
603
+ "title": "derived properties schema",
604
+ "type": "array",
605
+ "items": {
606
+ "oneOf": [
607
+ {
608
+ "$schema": "http://json-schema.org/draft-07/schema#",
609
+ "title": "volume schema",
610
+ "type": "object",
611
+ "required": [
612
+ "value"
613
+ ],
614
+ "properties": {
615
+ "name": {
616
+ "enum": [
617
+ "volume"
618
+ ]
619
+ },
620
+ "units": {
621
+ "enum": [
622
+ "angstrom^3"
623
+ ]
624
+ },
625
+ "value": {
626
+ "type": "number"
627
+ }
628
+ }
629
+ },
630
+ {
631
+ "$schema": "http://json-schema.org/draft-07/schema#",
632
+ "title": "density schema",
633
+ "type": "object",
634
+ "required": [
635
+ "value"
636
+ ],
637
+ "properties": {
638
+ "name": {
639
+ "enum": [
640
+ "density"
641
+ ]
642
+ },
643
+ "units": {
644
+ "enum": [
645
+ "g/cm^3"
646
+ ]
647
+ },
648
+ "value": {
649
+ "type": "number"
650
+ }
651
+ }
652
+ },
653
+ {
654
+ "$schema": "http://json-schema.org/draft-07/schema#",
655
+ "title": "symmetry schema",
656
+ "type": "object",
657
+ "properties": {
658
+ "pointGroupSymbol": {
659
+ "description": "point group symbol in Schoenflies notation",
660
+ "type": "string"
661
+ },
662
+ "spaceGroupSymbol": {
663
+ "description": "space group symbol in Hermann–Mauguin notation",
664
+ "type": "string"
665
+ },
666
+ "tolerance": {
667
+ "type": "object",
668
+ "description": "tolerance used for symmetry calculation",
669
+ "$schema": "http://json-schema.org/draft-07/schema#",
670
+ "title": "scalar schema",
671
+ "required": [
672
+ "value"
673
+ ],
674
+ "properties": {
675
+ "units": {
676
+ "enum": [
677
+ "angstrom"
678
+ ]
679
+ },
680
+ "value": {
681
+ "type": "number"
682
+ }
683
+ }
684
+ },
685
+ "name": {
686
+ "enum": [
687
+ "symmetry"
688
+ ]
689
+ }
690
+ }
691
+ },
692
+ {
693
+ "$schema": "http://json-schema.org/draft-07/schema#",
694
+ "title": "elemental-ratio",
695
+ "description": "ration of this element in the compound",
696
+ "type": "object",
697
+ "required": [
698
+ "value"
699
+ ],
700
+ "properties": {
701
+ "name": {
702
+ "enum": [
703
+ "elemental_ratio"
704
+ ]
705
+ },
706
+ "value": {
707
+ "type": "number",
708
+ "minimum": 0,
709
+ "maximum": 1
710
+ },
711
+ "element": {
712
+ "type": "string",
713
+ "description": "the element this ratio is for"
714
+ }
715
+ }
716
+ },
717
+ {
718
+ "$schema": "http://json-schema.org/draft-07/schema#",
719
+ "title": "p_norm",
720
+ "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm",
721
+ "type": "object",
722
+ "required": [
723
+ "value"
724
+ ],
725
+ "properties": {
726
+ "name": {
727
+ "enum": [
728
+ "p-norm"
729
+ ]
730
+ },
731
+ "degree": {
732
+ "type": "integer",
733
+ "description": "degree of the dimensionality of the norm"
734
+ },
735
+ "value": {
736
+ "type": "number"
737
+ }
738
+ }
739
+ },
740
+ {
741
+ "$schema": "http://json-schema.org/draft-07/schema#",
742
+ "title": "InChI representation schema",
743
+ "type": "object",
744
+ "required": [
745
+ "value"
746
+ ],
747
+ "properties": {
748
+ "name": {
749
+ "enum": [
750
+ "inchi"
751
+ ]
752
+ },
753
+ "value": {
754
+ "type": "string"
755
+ }
756
+ }
757
+ },
758
+ {
759
+ "$schema": "http://json-schema.org/draft-07/schema#",
760
+ "title": "InChI key representation schema",
761
+ "type": "object",
762
+ "required": [
763
+ "value"
764
+ ],
765
+ "properties": {
766
+ "name": {
767
+ "enum": [
768
+ "inchi_key"
769
+ ]
770
+ },
771
+ "value": {
772
+ "type": "string"
773
+ }
774
+ }
775
+ }
776
+ ],
777
+ "discriminator": {
778
+ "propertyName": "name"
554
779
  },
555
- "element": {
556
- "type": "string",
557
- "description": "the element this ratio is for"
558
- }
780
+ "required": [
781
+ "name"
782
+ ]
559
783
  }
560
784
  },
561
- {
785
+ "external": {
562
786
  "$schema": "http://json-schema.org/draft-07/schema#",
563
- "title": "p_norm",
564
- "description": "https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm",
787
+ "title": "database source schema",
788
+ "description": "information about a database source",
565
789
  "type": "object",
566
790
  "required": [
567
- "value"
791
+ "id",
792
+ "source",
793
+ "origin"
568
794
  ],
569
795
  "properties": {
570
- "name": {
571
- "enum": [
572
- "p-norm"
796
+ "id": {
797
+ "description": "ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32",
798
+ "oneOf": [
799
+ {
800
+ "type": "string"
801
+ },
802
+ {
803
+ "type": "number"
804
+ }
573
805
  ]
574
806
  },
575
- "degree": {
576
- "type": "integer",
577
- "description": "degree of the dimensionality of the norm"
807
+ "source": {
808
+ "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.",
809
+ "type": "string"
810
+ },
811
+ "origin": {
812
+ "description": "Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).",
813
+ "type": "boolean"
814
+ },
815
+ "data": {
816
+ "description": "Original response from external source.",
817
+ "type": "object"
818
+ },
819
+ "doi": {
820
+ "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506",
821
+ "type": "string"
578
822
  },
579
- "value": {
580
- "type": "number"
823
+ "url": {
824
+ "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers",
825
+ "type": "string"
581
826
  }
582
827
  }
583
828
  },
584
- {
829
+ "src": {
585
830
  "$schema": "http://json-schema.org/draft-07/schema#",
586
- "title": "InChI representation schema",
831
+ "title": "file source schema",
832
+ "description": "file source with the information inside",
587
833
  "type": "object",
588
834
  "required": [
589
- "value"
835
+ "filename",
836
+ "text",
837
+ "hash"
590
838
  ],
591
839
  "properties": {
592
- "name": {
593
- "enum": [
594
- "inchi"
595
- ]
840
+ "extension": {
841
+ "description": "file extension",
842
+ "type": "string"
596
843
  },
597
- "value": {
844
+ "filename": {
845
+ "description": "file name without extension",
846
+ "type": "string"
847
+ },
848
+ "text": {
849
+ "description": "file content as raw text",
598
850
  "type": "string"
599
- }
600
- }
601
- },
602
- {
603
- "$schema": "http://json-schema.org/draft-07/schema#",
604
- "title": "InChI key representation schema",
605
- "type": "object",
606
- "required": [
607
- "value"
608
- ],
609
- "properties": {
610
- "name": {
611
- "enum": [
612
- "inchi_key"
613
- ]
614
851
  },
615
- "value": {
852
+ "hash": {
853
+ "description": "MD5 hash based on file content",
616
854
  "type": "string"
617
855
  }
618
856
  }
619
- }
620
- ],
621
- "discriminator": {
622
- "propertyName": "name"
623
- },
624
- "required": [
625
- "name"
626
- ]
627
- }
628
- },
629
- "external": {
630
- "$schema": "http://json-schema.org/draft-07/schema#",
631
- "title": "database source schema",
632
- "description": "information about a database source",
633
- "type": "object",
634
- "required": [
635
- "id",
636
- "source",
637
- "origin"
638
- ],
639
- "properties": {
640
- "id": {
641
- "description": "ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32",
642
- "oneOf": [
643
- {
644
- "type": "string"
645
- },
646
- {
647
- "type": "number"
857
+ },
858
+ "scaledHash": {
859
+ "description": "Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).",
860
+ "type": "string"
861
+ },
862
+ "icsdId": {
863
+ "description": "Corresponding ICSD id of the material",
864
+ "type": "integer"
865
+ },
866
+ "isNonPeriodic": {
867
+ "description": "Whether to work in the finite molecular picture (usually with atomic orbital basis)",
868
+ "type": "boolean"
869
+ },
870
+ "consistencyChecks": {
871
+ "type": "array",
872
+ "items": {
873
+ "$schema": "http://json-schema.org/draft-07/schema#",
874
+ "title": "material consistency check schema",
875
+ "type": "object",
876
+ "description": "The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.",
877
+ "required": [
878
+ "key",
879
+ "name",
880
+ "severity",
881
+ "message"
882
+ ],
883
+ "properties": {
884
+ "name": {
885
+ "type": "string",
886
+ "enum": [
887
+ "default",
888
+ "atomsTooClose",
889
+ "atomsOverlap"
890
+ ],
891
+ "description": "Name of the consistency check that is performed, which is listed in an enum."
892
+ },
893
+ "key": {
894
+ "type": "string",
895
+ "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"
896
+ },
897
+ "severity": {
898
+ "enum": [
899
+ "info",
900
+ "warning",
901
+ "error"
902
+ ],
903
+ "description": "Severity level of the problem, which is used in UI to differentiate."
904
+ },
905
+ "message": {
906
+ "type": "string",
907
+ "description": "Message generated by the consistency check describing the problem."
908
+ }
909
+ }
648
910
  }
649
- ]
650
- },
651
- "source": {
652
- "description": "Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.",
653
- "type": "string"
654
- },
655
- "origin": {
656
- "description": "Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).",
657
- "type": "boolean"
658
- },
659
- "data": {
660
- "description": "Original response from external source.",
661
- "type": "object"
662
- },
663
- "doi": {
664
- "description": "Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506",
665
- "type": "string"
666
- },
667
- "url": {
668
- "description": "The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers",
669
- "type": "string"
670
- }
671
- }
672
- },
673
- "src": {
674
- "$schema": "http://json-schema.org/draft-07/schema#",
675
- "title": "file source schema",
676
- "description": "file source with the information inside",
677
- "type": "object",
678
- "required": [
679
- "filename",
680
- "text",
681
- "hash"
682
- ],
683
- "properties": {
684
- "extension": {
685
- "description": "file extension",
686
- "type": "string"
687
- },
688
- "filename": {
689
- "description": "file name without extension",
690
- "type": "string"
691
- },
692
- "text": {
693
- "description": "file content as raw text",
694
- "type": "string"
695
- },
696
- "hash": {
697
- "description": "MD5 hash based on file content",
698
- "type": "string"
699
- }
700
- }
701
- },
702
- "scaledHash": {
703
- "description": "Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).",
704
- "type": "string"
705
- },
706
- "icsdId": {
707
- "description": "Corresponding ICSD id of the material",
708
- "type": "integer"
709
- },
710
- "isNonPeriodic": {
711
- "description": "Whether to work in the finite molecular picture (usually with atomic orbital basis)",
712
- "type": "boolean"
713
- },
714
- "consistencyChecks": {
715
- "type": "array",
716
- "items": {
717
- "$schema": "http://json-schema.org/draft-07/schema#",
718
- "title": "material consistency check schema",
719
- "type": "object",
720
- "description": "The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.",
721
- "required": [
722
- "key",
723
- "name",
724
- "severity",
725
- "message"
726
- ],
727
- "properties": {
728
- "name": {
729
- "type": "string",
730
- "enum": [
731
- "default",
732
- "atomsTooClose",
733
- "atomsOverlap"
734
- ],
735
- "description": "Name of the consistency check that is performed, which is listed in an enum."
736
911
  },
737
- "key": {
738
- "type": "string",
739
- "description": "Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"
912
+ "_id": {
913
+ "description": "entity identity",
914
+ "type": "string"
740
915
  },
741
- "severity": {
742
- "enum": [
743
- "info",
744
- "warning",
745
- "error"
746
- ],
747
- "description": "Severity level of the problem, which is used in UI to differentiate."
916
+ "slug": {
917
+ "description": "entity slug",
918
+ "type": "string"
919
+ },
920
+ "systemName": {
921
+ "type": "string"
748
922
  },
749
- "message": {
923
+ "schemaVersion": {
924
+ "description": "entity's schema version. Used to distinct between different schemas.",
750
925
  "type": "string",
751
- "description": "Message generated by the consistency check describing the problem."
926
+ "default": "2022.8.16"
927
+ },
928
+ "name": {
929
+ "description": "entity name",
930
+ "type": "string"
931
+ },
932
+ "isDefault": {
933
+ "description": "Identifies that entity is defaultable",
934
+ "type": "boolean",
935
+ "default": false
936
+ },
937
+ "metadata": {
938
+ "type": "object"
752
939
  }
753
940
  }
941
+ },
942
+ "miller_indices": {
943
+ "$schema": "http://json-schema.org/draft-07/schema#",
944
+ "title": "Miller Indices Schema",
945
+ "description": "Miller indices [h, k, l] defining crystallographic planes",
946
+ "default": [
947
+ 0,
948
+ 0,
949
+ 1
950
+ ],
951
+ "type": "array",
952
+ "minItems": 3,
953
+ "maxItems": 3,
954
+ "items": {
955
+ "type": "integer"
956
+ }
957
+ },
958
+ "use_conventional_cell": {
959
+ "type": "boolean",
960
+ "description": "Use the conventional cell for the crystal structure",
961
+ "default": true
754
962
  }
755
- },
756
- "_id": {
757
- "description": "entity identity",
758
- "type": "string"
759
- },
760
- "slug": {
761
- "description": "entity slug",
762
- "type": "string"
763
- },
764
- "systemName": {
765
- "type": "string"
766
- },
767
- "schemaVersion": {
768
- "description": "entity's schema version. Used to distinct between different schemas.",
769
- "type": "string",
770
- "default": "2022.8.16"
771
- },
772
- "name": {
773
- "description": "entity name",
774
- "type": "string"
775
- },
776
- "isDefault": {
777
- "description": "Identifies that entity is defaultable",
778
- "type": "boolean",
779
- "default": false
780
- },
781
- "metadata": {
782
- "type": "object"
783
- }
784
- }
785
- },
786
- "miller_indices": {
787
- "$schema": "http://json-schema.org/draft-07/schema#",
788
- "title": "Miller Indices Schema",
789
- "description": "Miller indices for crystallographic plane designation",
790
- "type": "array",
791
- "minItems": 3,
792
- "maxItems": 3,
793
- "default": [
794
- 0,
795
- 0,
796
- 1
797
- ],
798
- "items": {
799
- "type": "integer"
800
- }
801
- },
802
- "number_of_layers": {
803
- "$schema": "http://json-schema.org/draft-07/schema#",
804
- "title": "Number of Layers Schema",
805
- "description": "Number of atomic layers in a structural component",
806
- "type": "integer",
807
- "minimum": 1,
808
- "default": 1
809
- },
810
- "vacuum": {
811
- "$schema": "http://json-schema.org/draft-07/schema#",
812
- "title": "Vacuum Thickness Schema",
813
- "description": "Vacuum thickness in Angstroms",
814
- "type": "number",
815
- "minimum": 0,
816
- "default": 5
817
- },
818
- "xy_supercell_matrix": {
819
- "$schema": "http://json-schema.org/draft-07/schema#",
820
- "title": "Supercell Matrix 2D Schema",
821
- "description": "Supercell matrix for xy plane transformations",
822
- "type": "array",
823
- "minItems": 2,
824
- "maxItems": 2,
825
- "default": [
826
- [
827
- 1,
828
- 0
829
- ],
830
- [
831
- 0,
832
- 1
833
- ]
834
- ],
835
- "items": {
836
- "type": "array",
837
- "minItems": 2,
838
- "maxItems": 2,
839
- "items": {
840
- "type": "integer"
841
- }
842
- }
843
- },
844
- "use_conventional_cell": {
845
- "title": "Use Conventional Cell",
846
- "description": "Whether to use conventional cell when generating the slab.",
847
- "type": "boolean",
848
- "default": true
849
- },
850
- "use_orthogonal_z": {
851
- "title": "Use Orthogonal Z",
852
- "description": "Whether to make vector c orthogonal to ab plane for the slab cell.",
853
- "type": "boolean",
854
- "default": true
855
- }
856
- }
857
- },
858
- "termination": {
859
- "$schema": "http://json-schema.org/draft-07/schema#",
860
- "title": "Termination Schema",
861
- "description": "Defines a specific termination of a slab",
862
- "type": "object",
863
- "required": [
864
- "chemical_elements",
865
- "space_group_symmetry_label"
866
- ],
867
- "properties": {
868
- "chemical_elements": {
869
- "title": "Chemical Elements",
870
- "description": "Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')",
871
- "type": "string",
872
- "anyOf": [
873
- {
874
- "enum": [
875
- "H",
876
- "He",
877
- "Li",
878
- "Be",
879
- "B",
880
- "C",
881
- "N",
882
- "O",
883
- "F",
884
- "Ne",
885
- "Na",
886
- "Mg",
887
- "Al",
888
- "Si",
889
- "P",
890
- "S",
891
- "Cl",
892
- "Ar",
893
- "K",
894
- "Ca",
895
- "Sc",
896
- "Ti",
897
- "V",
898
- "Cr",
899
- "Mn",
900
- "Fe",
901
- "Co",
902
- "Ni",
903
- "Cu",
904
- "Zn",
905
- "Ga",
906
- "Ge",
907
- "As",
908
- "Se",
909
- "Br",
910
- "Kr",
911
- "Rb",
912
- "Sr",
913
- "Y",
914
- "Zr",
915
- "Nb",
916
- "Mo",
917
- "Tc",
918
- "Ru",
919
- "Rh",
920
- "Pd",
921
- "Ag",
922
- "Cd",
923
- "In",
924
- "Sn",
925
- "Sb",
926
- "Te",
927
- "I",
928
- "Xe",
929
- "Cs",
930
- "Ba",
931
- "La",
932
- "Ce",
933
- "Pr",
934
- "Nd",
935
- "Pm",
936
- "Sm",
937
- "Eu",
938
- "Gd",
939
- "Tb",
940
- "Dy",
941
- "Ho",
942
- "Er",
943
- "Tm",
944
- "Yb",
945
- "Lu",
946
- "Hf",
947
- "Ta",
948
- "W",
949
- "Re",
950
- "Os",
951
- "Ir",
952
- "Pt",
953
- "Au",
954
- "Hg",
955
- "Tl",
956
- "Pb",
957
- "Bi",
958
- "Po",
959
- "At",
960
- "Rn",
961
- "Fr",
962
- "Ra",
963
- "Ac",
964
- "Th",
965
- "Pa",
966
- "U",
967
- "Np",
968
- "Pu",
969
- "Am",
970
- "Cm",
971
- "Bk",
972
- "Cf",
973
- "Es",
974
- "Fm",
975
- "Md",
976
- "No",
977
- "Lr",
978
- "Rf",
979
- "Db",
980
- "Sg",
981
- "Bh",
982
- "Hs",
983
- "Mt",
984
- "Ds",
985
- "Rg",
986
- "Cn",
987
- "Nh",
988
- "Fl",
989
- "Mc",
990
- "Lv",
991
- "Ts",
992
- "Og"
993
- ]
994
- },
995
- {
996
- "type": "string",
997
- "pattern": "^[A-Z][a-z]?([A-Z][a-z]?)*$"
998
963
  }
999
- ]
1000
- },
1001
- "space_group_symmetry_label": {
1002
- "title": "Space Group Symmetry Label",
1003
- "description": "Space group symmetry designation for the termination",
1004
- "type": "string"
1005
- }
1006
- }
1007
- },
1008
- "stack_slab_configurations": {
1009
- "minItems": 2,
1010
- "maxItems": 2,
1011
- "type": "array",
1012
- "description": "List of slab configurations for the slabs in the stack",
1013
- "items": {
1014
- "$schema": "http://json-schema.org/draft-07/schema#",
1015
- "title": "Slab in Stack Configuration Schema",
1016
- "description": "Configuration for a slab in a stack with termination",
1017
- "required": [
1018
- "slab_configuration",
1019
- "termination"
1020
- ],
1021
- "type": "object",
1022
- "properties": {
1023
- "stack_component": {
1024
- "type": "string",
1025
- "description": "Component of the stack (e.g., slab1, slab2)"
1026
- },
1027
- "distance_to_next_slab": {
1028
- "type": "number",
1029
- "description": "Distance to the next slab in the stack, in Angstroms",
1030
- "default": 3
1031
964
  },
1032
- "slab_configuration": {
965
+ {
1033
966
  "$schema": "http://json-schema.org/draft-07/schema#",
1034
- "title": "Slab Configuration Schema",
1035
- "description": "Configuration for creating a slab from a bulk material",
967
+ "title": "Vacuum Configuration Schema",
968
+ "description": "A vacuum slab that breaks periodicity in a specified direction",
1036
969
  "type": "object",
1037
970
  "properties": {
1038
- "bulk": {
971
+ "direction": {
1039
972
  "$schema": "http://json-schema.org/draft-07/schema#",
1040
- "title": "material schema",
973
+ "title": "Axis Enum",
974
+ "type": "string",
975
+ "description": "Enum for axis types",
976
+ "enum": [
977
+ "x",
978
+ "y",
979
+ "z"
980
+ ]
981
+ },
982
+ "size": {
983
+ "type": "number",
984
+ "description": "Size of the vacuum slab in angstroms",
985
+ "minimum": 0,
986
+ "default": 10
987
+ },
988
+ "crystal": {
989
+ "$schema": "http://json-schema.org/draft-07/schema#",
990
+ "title": "Crystal Schema",
991
+ "description": "A crystal structure, referencing the base material schema",
1041
992
  "type": "object",
1042
993
  "required": [
1043
994
  "basis",
@@ -1789,231 +1740,27 @@
1789
1740
  "type": "object"
1790
1741
  }
1791
1742
  }
1792
- },
1793
- "miller_indices": {
1794
- "$schema": "http://json-schema.org/draft-07/schema#",
1795
- "title": "Miller Indices Schema",
1796
- "description": "Miller indices for crystallographic plane designation",
1797
- "type": "array",
1798
- "minItems": 3,
1799
- "maxItems": 3,
1800
- "default": [
1801
- 0,
1802
- 0,
1803
- 1
1804
- ],
1805
- "items": {
1806
- "type": "integer"
1807
- }
1808
- },
1809
- "number_of_layers": {
1810
- "$schema": "http://json-schema.org/draft-07/schema#",
1811
- "title": "Number of Layers Schema",
1812
- "description": "Number of atomic layers in a structural component",
1813
- "type": "integer",
1814
- "minimum": 1,
1815
- "default": 1
1816
- },
1817
- "vacuum": {
1818
- "$schema": "http://json-schema.org/draft-07/schema#",
1819
- "title": "Vacuum Thickness Schema",
1820
- "description": "Vacuum thickness in Angstroms",
1821
- "type": "number",
1822
- "minimum": 0,
1823
- "default": 5
1824
- },
1825
- "xy_supercell_matrix": {
1826
- "$schema": "http://json-schema.org/draft-07/schema#",
1827
- "title": "Supercell Matrix 2D Schema",
1828
- "description": "Supercell matrix for xy plane transformations",
1829
- "type": "array",
1830
- "minItems": 2,
1831
- "maxItems": 2,
1832
- "default": [
1833
- [
1834
- 1,
1835
- 0
1836
- ],
1837
- [
1838
- 0,
1839
- 1
1840
- ]
1841
- ],
1842
- "items": {
1843
- "type": "array",
1844
- "minItems": 2,
1845
- "maxItems": 2,
1846
- "items": {
1847
- "type": "integer"
1848
- }
1849
- }
1850
- },
1851
- "use_conventional_cell": {
1852
- "title": "Use Conventional Cell",
1853
- "description": "Whether to use conventional cell when generating the slab.",
1854
- "type": "boolean",
1855
- "default": true
1856
- },
1857
- "use_orthogonal_z": {
1858
- "title": "Use Orthogonal Z",
1859
- "description": "Whether to make vector c orthogonal to ab plane for the slab cell.",
1860
- "type": "boolean",
1861
- "default": true
1862
1743
  }
1863
- }
1864
- },
1865
- "termination": {
1866
- "$schema": "http://json-schema.org/draft-07/schema#",
1867
- "title": "Termination Schema",
1868
- "description": "Defines a specific termination of a slab",
1869
- "type": "object",
1744
+ },
1870
1745
  "required": [
1871
- "chemical_elements",
1872
- "space_group_symmetry_label"
1873
- ],
1874
- "properties": {
1875
- "chemical_elements": {
1876
- "title": "Chemical Elements",
1877
- "description": "Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')",
1878
- "type": "string",
1879
- "anyOf": [
1880
- {
1881
- "enum": [
1882
- "H",
1883
- "He",
1884
- "Li",
1885
- "Be",
1886
- "B",
1887
- "C",
1888
- "N",
1889
- "O",
1890
- "F",
1891
- "Ne",
1892
- "Na",
1893
- "Mg",
1894
- "Al",
1895
- "Si",
1896
- "P",
1897
- "S",
1898
- "Cl",
1899
- "Ar",
1900
- "K",
1901
- "Ca",
1902
- "Sc",
1903
- "Ti",
1904
- "V",
1905
- "Cr",
1906
- "Mn",
1907
- "Fe",
1908
- "Co",
1909
- "Ni",
1910
- "Cu",
1911
- "Zn",
1912
- "Ga",
1913
- "Ge",
1914
- "As",
1915
- "Se",
1916
- "Br",
1917
- "Kr",
1918
- "Rb",
1919
- "Sr",
1920
- "Y",
1921
- "Zr",
1922
- "Nb",
1923
- "Mo",
1924
- "Tc",
1925
- "Ru",
1926
- "Rh",
1927
- "Pd",
1928
- "Ag",
1929
- "Cd",
1930
- "In",
1931
- "Sn",
1932
- "Sb",
1933
- "Te",
1934
- "I",
1935
- "Xe",
1936
- "Cs",
1937
- "Ba",
1938
- "La",
1939
- "Ce",
1940
- "Pr",
1941
- "Nd",
1942
- "Pm",
1943
- "Sm",
1944
- "Eu",
1945
- "Gd",
1946
- "Tb",
1947
- "Dy",
1948
- "Ho",
1949
- "Er",
1950
- "Tm",
1951
- "Yb",
1952
- "Lu",
1953
- "Hf",
1954
- "Ta",
1955
- "W",
1956
- "Re",
1957
- "Os",
1958
- "Ir",
1959
- "Pt",
1960
- "Au",
1961
- "Hg",
1962
- "Tl",
1963
- "Pb",
1964
- "Bi",
1965
- "Po",
1966
- "At",
1967
- "Rn",
1968
- "Fr",
1969
- "Ra",
1970
- "Ac",
1971
- "Th",
1972
- "Pa",
1973
- "U",
1974
- "Np",
1975
- "Pu",
1976
- "Am",
1977
- "Cm",
1978
- "Bk",
1979
- "Cf",
1980
- "Es",
1981
- "Fm",
1982
- "Md",
1983
- "No",
1984
- "Lr",
1985
- "Rf",
1986
- "Db",
1987
- "Sg",
1988
- "Bh",
1989
- "Hs",
1990
- "Mt",
1991
- "Ds",
1992
- "Rg",
1993
- "Cn",
1994
- "Nh",
1995
- "Fl",
1996
- "Mc",
1997
- "Lv",
1998
- "Ts",
1999
- "Og"
2000
- ]
2001
- },
2002
- {
2003
- "type": "string",
2004
- "pattern": "^[A-Z][a-z]?([A-Z][a-z]?)*$"
2005
- }
2006
- ]
2007
- },
2008
- "space_group_symmetry_label": {
2009
- "title": "Space Group Symmetry Label",
2010
- "description": "Space group symmetry designation for the termination",
2011
- "type": "string"
2012
- }
2013
- }
1746
+ "direction",
1747
+ "size",
1748
+ "crystal"
1749
+ ]
2014
1750
  }
2015
- }
1751
+ ]
2016
1752
  }
1753
+ },
1754
+ "direction": {
1755
+ "$schema": "http://json-schema.org/draft-07/schema#",
1756
+ "title": "Axis Enum",
1757
+ "type": "string",
1758
+ "description": "Enum for axis types",
1759
+ "enum": [
1760
+ "x",
1761
+ "y",
1762
+ "z"
1763
+ ]
2017
1764
  }
2018
1765
  }
2019
1766
  }