@mat3ra/esse 2025.4.17-0 → 2025.4.22-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 (143) hide show
  1. package/.pre-commit-config.yaml +3 -6
  2. package/dist/js/example/core/abstract/vector_boolean_3d.json +5 -0
  3. package/dist/js/example/material.json +11 -11
  4. package/dist/js/example/properties_directory/structural/basis/atomic_coordinates.json +18 -21
  5. package/dist/js/example/properties_directory/structural/basis/atomic_elements.json +10 -0
  6. package/dist/js/example/properties_directory/structural/basis/atomic_label.json +4 -0
  7. package/dist/js/example/properties_directory/structural/basis/atomic_labels.json +10 -0
  8. package/dist/js/example/properties_directory/structural/lattice.json +11 -11
  9. package/dist/js/schema/{3pse → apse}/db/nist_jarvis/2024.3.13/atoms.json +1 -1
  10. package/dist/js/schema/{3pse → apse}/db/nist_jarvis/2024.3.13/db_entry.json +1 -1
  11. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/atomic_positions.json +1 -1
  12. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/atomic_species.json +1 -1
  13. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/cell.json +1 -1
  14. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/cell_parameters.json +1 -1
  15. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/control.json +1 -1
  16. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/electrons.json +1 -1
  17. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/hubbard.json +1 -1
  18. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/ions.json +1 -1
  19. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/k_points.json +1 -1
  20. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/system.json +1 -1
  21. package/dist/js/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x.json +1 -1
  22. package/dist/js/schema/core/abstract/coordinate_3d.json +11 -0
  23. package/dist/js/schema/core/abstract/kpoint.json +12 -0
  24. package/dist/js/schema/core/abstract/{3d_tensor.json → matrix_3x3.json} +2 -2
  25. package/dist/js/schema/core/abstract/{point.json → vector_3d.json} +2 -2
  26. package/dist/js/schema/core/abstract/{vector.json → vector_boolean_3d.json} +2 -12
  27. package/dist/js/schema/core/primitive/array_of_ids.json +7 -1
  28. package/dist/js/schema/core/primitive/object_with_id.json +16 -0
  29. package/dist/js/schema/core/primitive/object_with_id_and_value.json +20 -0
  30. package/dist/js/schema/core/reusable/atomic_scalars.json +6 -0
  31. package/dist/js/schema/core/reusable/atomic_string.json +21 -0
  32. package/dist/js/schema/core/reusable/atomic_vector.json +28 -0
  33. package/dist/js/schema/core/reusable/atomic_vectors.json +15 -24
  34. package/dist/js/schema/core/reusable/band_gap.json +4 -2
  35. package/dist/js/schema/material.json +113 -96
  36. package/dist/js/schema/properties_directory/non_scalar/band_gaps.json +6 -3
  37. package/dist/js/schema/properties_directory/non_scalar/stress_tensor.json +1 -1
  38. package/dist/js/schema/properties_directory/structural/atomic_forces.json +15 -24
  39. package/dist/js/schema/properties_directory/structural/basis/atomic_constraint.json +34 -0
  40. package/dist/js/schema/properties_directory/structural/basis/atomic_constraints.json +30 -45
  41. package/dist/js/schema/properties_directory/structural/basis/atomic_constraints_property.json +53 -0
  42. package/dist/js/schema/properties_directory/structural/basis/atomic_coordinate.json +18 -28
  43. package/dist/js/schema/properties_directory/structural/basis/atomic_coordinates.json +26 -59
  44. package/dist/js/schema/properties_directory/structural/basis/atomic_element.json +7 -12
  45. package/dist/js/schema/properties_directory/structural/basis/atomic_elements.json +27 -0
  46. package/dist/js/schema/properties_directory/structural/basis/atomic_label.json +27 -10
  47. package/dist/js/schema/properties_directory/structural/basis/atomic_labels.json +42 -0
  48. package/dist/js/schema/properties_directory/structural/basis/bonds.json +7 -1
  49. package/dist/js/schema/properties_directory/structural/basis/units_enum.json +10 -0
  50. package/dist/js/schema/properties_directory/structural/basis.json +63 -52
  51. package/dist/js/schema/properties_directory/structural/lattice/lattice_vectors.json +15 -40
  52. package/dist/js/schema/properties_directory/structural/lattice/units/angle_enum.json +10 -0
  53. package/dist/js/schema/properties_directory/structural/lattice/units/length_enum.json +10 -0
  54. package/dist/js/schema/properties_directory/structural/lattice/vectors/units_enum.json +10 -0
  55. package/dist/js/schema/{core/abstract/3d_vector_basis.json → properties_directory/structural/lattice/vectors.json} +19 -5
  56. package/dist/js/schema/properties_directory/structural/lattice.json +50 -44
  57. package/dist/js/schema/properties_directory/structural/magnetic_moments.json +15 -24
  58. package/dist/js/schema/properties_directory/structural/molecular_pattern.json +21 -3
  59. package/dist/js/schema/properties_directory/structural/patterns/functional_group.json +7 -1
  60. package/dist/js/schema/properties_directory/structural/patterns/ring.json +7 -1
  61. package/dist/js/schema/properties_directory/structural/patterns/special_bond.json +7 -1
  62. package/dist/js/schemas.json +1 -1
  63. package/dist/js/types.d.ts +445 -322
  64. package/dist/js/types.js +1 -1
  65. package/example/core/abstract/vector_boolean_3d.json +5 -0
  66. package/example/properties_directory/structural/basis/atomic_coordinates.json +18 -21
  67. package/example/properties_directory/structural/basis/atomic_elements.json +10 -0
  68. package/example/properties_directory/structural/basis/atomic_label.json +4 -0
  69. package/example/properties_directory/structural/basis/atomic_labels.json +10 -0
  70. package/example/properties_directory/structural/lattice.json +12 -2
  71. package/package.json +3 -3
  72. package/schema/{3pse → apse}/db/nist_jarvis/2024.3.13/atoms.json +1 -1
  73. package/schema/{3pse → apse}/db/nist_jarvis/2024.3.13/db_entry.json +1 -1
  74. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/atomic_positions.json +1 -1
  75. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/atomic_species.json +1 -1
  76. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/cell.json +1 -1
  77. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/cell_parameters.json +1 -1
  78. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/control.json +1 -1
  79. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/electrons.json +1 -1
  80. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/hubbard.json +1 -1
  81. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/ions.json +1 -1
  82. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/k_points.json +1 -1
  83. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x/system.json +1 -1
  84. package/schema/{3pse → apse}/file/applications/espresso/7.2/pw.x.json +1 -1
  85. package/schema/core/abstract/coordinate_3d.json +10 -0
  86. package/schema/core/abstract/{3d_tensor.json → matrix_3x3.json} +2 -2
  87. package/schema/core/abstract/{point.json → vector_3d.json} +2 -2
  88. package/schema/core/abstract/{vector.json → vector_boolean_3d.json} +2 -5
  89. package/schema/core/primitive/array_of_ids.json +2 -8
  90. package/schema/core/primitive/object_with_id.json +17 -0
  91. package/schema/core/primitive/object_with_id_and_value.json +22 -0
  92. package/schema/core/reusable/atomic_string.json +15 -0
  93. package/schema/core/reusable/atomic_vector.json +15 -0
  94. package/schema/core/reusable/atomic_vectors.json +1 -11
  95. package/schema/core/reusable/band_gap.json +2 -2
  96. package/schema/core/reusable/kpoint.json +11 -0
  97. package/schema/properties_directory/non-scalar/band_gaps.json +1 -1
  98. package/schema/properties_directory/non-scalar/stress_tensor.json +1 -1
  99. package/schema/properties_directory/structural/basis/atomic_constraint.json +17 -0
  100. package/schema/properties_directory/structural/basis/atomic_constraints.json +4 -11
  101. package/schema/properties_directory/structural/basis/atomic_constraints_property.json +17 -0
  102. package/schema/properties_directory/structural/basis/atomic_coordinate.json +8 -6
  103. package/schema/properties_directory/structural/basis/atomic_coordinates.json +6 -18
  104. package/schema/properties_directory/structural/basis/atomic_element.json +5 -20
  105. package/schema/properties_directory/structural/basis/atomic_elements.json +10 -0
  106. package/schema/properties_directory/structural/basis/atomic_label.json +20 -6
  107. package/schema/properties_directory/structural/basis/atomic_labels.json +10 -0
  108. package/schema/properties_directory/structural/basis/units_enum.json +10 -0
  109. package/schema/properties_directory/structural/basis.json +4 -19
  110. package/schema/properties_directory/structural/lattice/units/angle_enum.json +10 -0
  111. package/schema/properties_directory/structural/lattice/units/length_enum.json +10 -0
  112. package/schema/properties_directory/structural/lattice/units.json +18 -0
  113. package/schema/properties_directory/structural/lattice/vectors/units_enum.json +10 -0
  114. package/schema/properties_directory/structural/lattice/vectors.json +33 -0
  115. package/schema/properties_directory/structural/lattice.json +41 -10
  116. package/dist/js/example/core/abstract/3d_vector_basis.json +0 -17
  117. package/dist/js/example/core/primitive/3d_lattice.json +0 -8
  118. package/dist/js/example/properties_directory/structural/lattice/lattice_bravais.json +0 -13
  119. package/dist/js/schema/core/primitive/3d_lattice.json +0 -40
  120. package/dist/js/schema/core/reusable/atomic_strings.json +0 -19
  121. package/dist/js/schema/properties_directory/structural/lattice/lattice_bravais.json +0 -87
  122. package/example/core/abstract/3d_vector_basis.json +0 -17
  123. package/example/core/primitive/3d_lattice.json +0 -8
  124. package/example/properties_directory/structural/lattice/lattice_bravais.json +0 -13
  125. package/schema/core/abstract/3d_vector_basis.json +0 -25
  126. package/schema/core/primitive/3d_lattice.json +0 -40
  127. package/schema/core/reusable/atomic_strings.json +0 -17
  128. package/schema/properties_directory/structural/lattice/lattice_bravais.json +0 -36
  129. package/schema/properties_directory/structural/lattice/lattice_vectors.json +0 -21
  130. /package/dist/js/example/{3pse → apse}/db/nist_jarvis/2024.3.13/db_entry.json +0 -0
  131. /package/dist/js/example/{3pse → apse}/file/applications/espresso/7.2/pw.x.json +0 -0
  132. /package/dist/js/example/core/abstract/{point.json → coordinate_3d.json} +0 -0
  133. /package/dist/js/example/core/abstract/{3d_tensor.json → matrix_3x3.json} +0 -0
  134. /package/dist/js/example/core/abstract/{vector.json → vector_3d.json} +0 -0
  135. /package/dist/js/example/properties_directory/structural/basis/{atomic_constraints.json → atomic_constraints_property.json} +0 -0
  136. /package/dist/js/example/properties_directory/structural/lattice/{lattice_vectors.json → vectors.json} +0 -0
  137. /package/example/{3pse → apse}/db/nist_jarvis/2024.3.13/db_entry.json +0 -0
  138. /package/example/{3pse → apse}/file/applications/espresso/7.2/pw.x.json +0 -0
  139. /package/example/core/abstract/{point.json → coordinate_3d.json} +0 -0
  140. /package/example/core/abstract/{3d_tensor.json → matrix_3x3.json} +0 -0
  141. /package/example/core/abstract/{vector.json → vector_3d.json} +0 -0
  142. /package/example/properties_directory/structural/basis/{atomic_constraints.json → atomic_constraints_property.json} +0 -0
  143. /package/example/properties_directory/structural/lattice/{lattice_vectors.json → vectors.json} +0 -0
@@ -1,67 +1,34 @@
1
1
  {
2
2
  "$id": "properties-directory/structural/basis/atomic-coordinates",
3
- "title": "atomic coordinates",
4
- "description": "coordinates of atoms by ids, vector, unitless",
5
- "type": "object",
6
- "properties": {
7
- "name": {
8
- "enum": [
9
- "atomic_coordinates"
10
- ]
11
- },
12
- "values": {
13
- "type": "array",
14
- "items": {
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "atomic coordinates schema",
5
+ "description": "atomic coordinates schema",
6
+ "type": "array",
7
+ "items": {
8
+ "$schema": "http://json-schema.org/draft-07/schema#",
9
+ "title": "atomic coordinate schema",
10
+ "description": "coordinate of an atom",
11
+ "type": "object",
12
+ "required": [
13
+ "id",
14
+ "value"
15
+ ],
16
+ "properties": {
17
+ "value": {
15
18
  "$schema": "http://json-schema.org/draft-07/schema#",
16
- "title": "atomic coordinate",
17
- "description": "coordinates of atoms by ids, vector, unitless",
18
- "type": "object",
19
- "properties": {
20
- "id": {
21
- "type": "number"
22
- },
23
- "value": {
24
- "$schema": "http://json-schema.org/draft-07/schema#",
25
- "title": "vector schema",
26
- "oneOf": [
27
- {
28
- "$schema": "http://json-schema.org/draft-07/schema#",
29
- "title": "array of 3 number elements schema",
30
- "type": "array",
31
- "items": {
32
- "type": "number"
33
- },
34
- "minItems": 3,
35
- "maxItems": 3
36
- },
37
- {
38
- "$schema": "http://json-schema.org/draft-07/schema#",
39
- "title": "array of 3 boolean elements schema",
40
- "type": "array",
41
- "items": {
42
- "type": "boolean"
43
- },
44
- "minItems": 3,
45
- "maxItems": 3
46
- }
47
- ]
48
- }
19
+ "title": "coordinate 3d schema",
20
+ "type": "array",
21
+ "minItems": 3,
22
+ "maxItems": 3,
23
+ "description": "value of this entry",
24
+ "items": {
25
+ "type": "number"
49
26
  }
27
+ },
28
+ "id": {
29
+ "description": "integer id of this entry",
30
+ "type": "integer"
50
31
  }
51
- },
52
- "units": {
53
- "enum": [
54
- "km",
55
- "m",
56
- "cm",
57
- "mm",
58
- "um",
59
- "nm",
60
- "angstrom",
61
- "a.u.",
62
- "bohr",
63
- "pm"
64
- ]
65
32
  }
66
33
  }
67
34
  }
@@ -1,26 +1,21 @@
1
1
  {
2
2
  "$id": "properties-directory/structural/basis/atomic-element",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "atomic elements",
5
- "description": "elements of atoms by ids, string, unitless",
4
+ "title": "atomic element schema",
5
+ "description": "chemical element of an atom according to the periodic table",
6
6
  "type": "object",
7
7
  "required": [
8
8
  "id",
9
9
  "value"
10
10
  ],
11
11
  "properties": {
12
- "id": {
13
- "type": "number"
14
- },
15
12
  "value": {
16
- "type": "string"
13
+ "type": "string",
14
+ "description": "value of this entry"
17
15
  },
18
- "occurrence": {
19
- "description": "Occurrence is for fractional occupations",
20
- "type": "number"
21
- },
22
- "oxidationState": {
23
- "type": "number"
16
+ "id": {
17
+ "description": "integer id of this entry",
18
+ "type": "integer"
24
19
  }
25
20
  }
26
21
  }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$id": "properties-directory/structural/basis/atomic-elements",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "atomic elements schema",
5
+ "description": "atomic elements schema",
6
+ "type": "array",
7
+ "items": {
8
+ "$schema": "http://json-schema.org/draft-07/schema#",
9
+ "title": "atomic element schema",
10
+ "description": "chemical element of an atom according to the periodic table",
11
+ "type": "object",
12
+ "required": [
13
+ "id",
14
+ "value"
15
+ ],
16
+ "properties": {
17
+ "value": {
18
+ "type": "string",
19
+ "description": "value of this entry"
20
+ },
21
+ "id": {
22
+ "description": "integer id of this entry",
23
+ "type": "integer"
24
+ }
25
+ }
26
+ }
27
+ }
@@ -1,19 +1,36 @@
1
1
  {
2
2
  "$id": "properties-directory/structural/basis/atomic-label",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "atomic label",
5
- "description": "Optional numeric label (e.g., 1, 2, as in Fe1, Fe2) to distinguish same atomic species to attach different spin magnetic moment.",
4
+ "title": "atomic label schema",
5
+ "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
6
6
  "type": "object",
7
+ "required": [
8
+ "id",
9
+ "value"
10
+ ],
7
11
  "properties": {
8
- "id": {
9
- "type": "number"
10
- },
11
12
  "value": {
12
- "$schema": "http://json-schema.org/draft-07/schema#",
13
- "title": "integer positive single digit",
14
- "type": "integer",
15
- "minimum": 1,
16
- "maximum": 9
13
+ "anyOf": [
14
+ {
15
+ "type": [
16
+ "integer",
17
+ "string",
18
+ "number"
19
+ ]
20
+ },
21
+ {
22
+ "$schema": "http://json-schema.org/draft-07/schema#",
23
+ "title": "integer positive single digit",
24
+ "type": "integer",
25
+ "minimum": 1,
26
+ "maximum": 9
27
+ }
28
+ ],
29
+ "description": "value of this entry"
30
+ },
31
+ "id": {
32
+ "description": "integer id of this entry",
33
+ "type": "integer"
17
34
  }
18
35
  }
19
36
  }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$id": "properties-directory/structural/basis/atomic-labels",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "atomic labels schema",
5
+ "description": "atomic labels schema",
6
+ "type": "array",
7
+ "items": {
8
+ "$schema": "http://json-schema.org/draft-07/schema#",
9
+ "title": "atomic label schema",
10
+ "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
11
+ "type": "object",
12
+ "required": [
13
+ "id",
14
+ "value"
15
+ ],
16
+ "properties": {
17
+ "value": {
18
+ "anyOf": [
19
+ {
20
+ "type": [
21
+ "integer",
22
+ "string",
23
+ "number"
24
+ ]
25
+ },
26
+ {
27
+ "$schema": "http://json-schema.org/draft-07/schema#",
28
+ "title": "integer positive single digit",
29
+ "type": "integer",
30
+ "minimum": 1,
31
+ "maximum": 9
32
+ }
33
+ ],
34
+ "description": "value of this entry"
35
+ },
36
+ "id": {
37
+ "description": "integer id of this entry",
38
+ "type": "integer"
39
+ }
40
+ }
41
+ }
42
+ }
@@ -13,9 +13,15 @@
13
13
  "minItems": 2,
14
14
  "maxItems": 2,
15
15
  "$schema": "http://json-schema.org/draft-07/schema#",
16
- "title": "atomic ids",
16
+ "title": "array of ids",
17
17
  "items": {
18
+ "$schema": "http://json-schema.org/draft-07/schema#",
19
+ "title": "object with id",
20
+ "description": "object containing integer id",
18
21
  "type": "object",
22
+ "required": [
23
+ "id"
24
+ ],
19
25
  "properties": {
20
26
  "id": {
21
27
  "description": "integer id of this entry",
@@ -0,0 +1,10 @@
1
+ {
2
+ "$id": "properties-directory/structural/basis/units-enum",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "basis units enum",
5
+ "enum": [
6
+ "crystal",
7
+ "cartesian"
8
+ ],
9
+ "default": "crystal"
10
+ }
@@ -9,75 +9,67 @@
9
9
  ],
10
10
  "properties": {
11
11
  "elements": {
12
+ "$schema": "http://json-schema.org/draft-07/schema#",
13
+ "title": "atomic elements schema",
14
+ "description": "atomic elements schema",
12
15
  "type": "array",
13
16
  "items": {
14
17
  "$schema": "http://json-schema.org/draft-07/schema#",
15
- "title": "atomic elements",
16
- "description": "elements of atoms by ids, string, unitless",
18
+ "title": "atomic element schema",
19
+ "description": "chemical element of an atom according to the periodic table",
17
20
  "type": "object",
18
21
  "required": [
19
22
  "id",
20
23
  "value"
21
24
  ],
22
25
  "properties": {
23
- "id": {
24
- "type": "number"
25
- },
26
26
  "value": {
27
- "type": "string"
27
+ "type": "string",
28
+ "description": "value of this entry"
28
29
  },
29
- "occurrence": {
30
- "description": "Occurrence is for fractional occupations",
31
- "type": "number"
32
- },
33
- "oxidationState": {
34
- "type": "number"
30
+ "id": {
31
+ "description": "integer id of this entry",
32
+ "type": "integer"
35
33
  }
36
34
  }
37
35
  }
38
36
  },
39
37
  "coordinates": {
38
+ "$schema": "http://json-schema.org/draft-07/schema#",
39
+ "title": "atomic coordinates schema",
40
+ "description": "atomic coordinates schema",
40
41
  "type": "array",
41
42
  "items": {
42
43
  "$schema": "http://json-schema.org/draft-07/schema#",
43
- "title": "atomic coordinate",
44
- "description": "coordinates of atoms by ids, vector, unitless",
44
+ "title": "atomic coordinate schema",
45
+ "description": "coordinate of an atom",
45
46
  "type": "object",
47
+ "required": [
48
+ "id",
49
+ "value"
50
+ ],
46
51
  "properties": {
47
- "id": {
48
- "type": "number"
49
- },
50
52
  "value": {
51
53
  "$schema": "http://json-schema.org/draft-07/schema#",
52
- "title": "vector schema",
53
- "oneOf": [
54
- {
55
- "$schema": "http://json-schema.org/draft-07/schema#",
56
- "title": "array of 3 number elements schema",
57
- "type": "array",
58
- "items": {
59
- "type": "number"
60
- },
61
- "minItems": 3,
62
- "maxItems": 3
63
- },
64
- {
65
- "$schema": "http://json-schema.org/draft-07/schema#",
66
- "title": "array of 3 boolean elements schema",
67
- "type": "array",
68
- "items": {
69
- "type": "boolean"
70
- },
71
- "minItems": 3,
72
- "maxItems": 3
73
- }
74
- ]
54
+ "title": "coordinate 3d schema",
55
+ "type": "array",
56
+ "minItems": 3,
57
+ "maxItems": 3,
58
+ "description": "value of this entry",
59
+ "items": {
60
+ "type": "number"
61
+ }
62
+ },
63
+ "id": {
64
+ "description": "integer id of this entry",
65
+ "type": "integer"
75
66
  }
76
67
  }
77
68
  }
78
69
  },
79
70
  "units": {
80
- "type": "string",
71
+ "$schema": "http://json-schema.org/draft-07/schema#",
72
+ "title": "basis units enum",
81
73
  "enum": [
82
74
  "crystal",
83
75
  "cartesian"
@@ -85,23 +77,42 @@
85
77
  "default": "crystal"
86
78
  },
87
79
  "labels": {
80
+ "$schema": "http://json-schema.org/draft-07/schema#",
81
+ "title": "atomic labels schema",
82
+ "description": "atomic labels schema",
88
83
  "type": "array",
89
- "default": [],
90
84
  "items": {
91
85
  "$schema": "http://json-schema.org/draft-07/schema#",
92
- "title": "atomic label",
93
- "description": "Optional numeric label (e.g., 1, 2, as in Fe1, Fe2) to distinguish same atomic species to attach different spin magnetic moment.",
86
+ "title": "atomic label schema",
87
+ "description": "Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.",
94
88
  "type": "object",
89
+ "required": [
90
+ "id",
91
+ "value"
92
+ ],
95
93
  "properties": {
96
- "id": {
97
- "type": "number"
98
- },
99
94
  "value": {
100
- "$schema": "http://json-schema.org/draft-07/schema#",
101
- "title": "integer positive single digit",
102
- "type": "integer",
103
- "minimum": 1,
104
- "maximum": 9
95
+ "anyOf": [
96
+ {
97
+ "type": [
98
+ "integer",
99
+ "string",
100
+ "number"
101
+ ]
102
+ },
103
+ {
104
+ "$schema": "http://json-schema.org/draft-07/schema#",
105
+ "title": "integer positive single digit",
106
+ "type": "integer",
107
+ "minimum": 1,
108
+ "maximum": 9
109
+ }
110
+ ],
111
+ "description": "value of this entry"
112
+ },
113
+ "id": {
114
+ "description": "integer id of this entry",
115
+ "type": "integer"
105
116
  }
106
117
  }
107
118
  }
@@ -1,55 +1,30 @@
1
1
  {
2
2
  "$id": "properties-directory/structural/lattice/lattice-vectors",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "lattice explicit unit",
4
+ "title": "Lattice units schema",
5
5
  "type": "object",
6
- "required": [
7
- "a",
8
- "b",
9
- "c"
10
- ],
6
+ "default": {
7
+ "length": "angstrom",
8
+ "angle": "degree"
9
+ },
11
10
  "properties": {
12
- "alat": {
13
- "description": "lattice parameter for fractional coordinates",
14
- "type": "number",
15
- "default": 1
16
- },
17
- "units": {
11
+ "length": {
12
+ "$schema": "http://json-schema.org/draft-07/schema#",
13
+ "title": "lattice units length enum",
18
14
  "enum": [
19
15
  "angstrom",
20
16
  "bohr"
21
17
  ],
22
18
  "default": "angstrom"
23
19
  },
24
- "a": {
25
- "$schema": "http://json-schema.org/draft-07/schema#",
26
- "title": "array of 3 number elements schema",
27
- "type": "array",
28
- "minItems": 3,
29
- "maxItems": 3,
30
- "items": {
31
- "type": "number"
32
- }
33
- },
34
- "b": {
20
+ "angle": {
35
21
  "$schema": "http://json-schema.org/draft-07/schema#",
36
- "title": "array of 3 number elements schema",
37
- "type": "array",
38
- "minItems": 3,
39
- "maxItems": 3,
40
- "items": {
41
- "type": "number"
42
- }
43
- },
44
- "c": {
45
- "$schema": "http://json-schema.org/draft-07/schema#",
46
- "title": "array of 3 number elements schema",
47
- "type": "array",
48
- "minItems": 3,
49
- "maxItems": 3,
50
- "items": {
51
- "type": "number"
52
- }
22
+ "title": "lattice units angle enum",
23
+ "enum": [
24
+ "degree",
25
+ "radian"
26
+ ],
27
+ "default": "degree"
53
28
  }
54
29
  }
55
30
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$id": "properties-directory/structural/lattice/units/angle-enum",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "lattice units angle enum",
5
+ "enum": [
6
+ "degree",
7
+ "radian"
8
+ ],
9
+ "default": "degree"
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$id": "properties-directory/structural/lattice/units/length-enum",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "lattice units length enum",
5
+ "enum": [
6
+ "angstrom",
7
+ "bohr"
8
+ ],
9
+ "default": "angstrom"
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$id": "properties-directory/structural/lattice/vectors/units-enum",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "lattice vectors units enum",
5
+ "enum": [
6
+ "angstrom",
7
+ "bohr"
8
+ ],
9
+ "default": "angstrom"
10
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
- "$id": "core/abstract/3d-vector-basis",
2
+ "$id": "properties-directory/structural/lattice/vectors",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "title": "3 dimensional vector basis",
4
+ "title": "lattice vectors schema",
5
5
  "type": "object",
6
6
  "required": [
7
7
  "a",
@@ -11,7 +11,7 @@
11
11
  "properties": {
12
12
  "a": {
13
13
  "$schema": "http://json-schema.org/draft-07/schema#",
14
- "title": "array of 3 number elements schema",
14
+ "title": "vector 3d schema",
15
15
  "type": "array",
16
16
  "minItems": 3,
17
17
  "maxItems": 3,
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "b": {
23
23
  "$schema": "http://json-schema.org/draft-07/schema#",
24
- "title": "array of 3 number elements schema",
24
+ "title": "vector 3d schema",
25
25
  "type": "array",
26
26
  "minItems": 3,
27
27
  "maxItems": 3,
@@ -31,13 +31,27 @@
31
31
  },
32
32
  "c": {
33
33
  "$schema": "http://json-schema.org/draft-07/schema#",
34
- "title": "array of 3 number elements schema",
34
+ "title": "vector 3d schema",
35
35
  "type": "array",
36
36
  "minItems": 3,
37
37
  "maxItems": 3,
38
38
  "items": {
39
39
  "type": "number"
40
40
  }
41
+ },
42
+ "alat": {
43
+ "description": "lattice parameter for fractional coordinates",
44
+ "type": "number",
45
+ "default": 1
46
+ },
47
+ "units": {
48
+ "$schema": "http://json-schema.org/draft-07/schema#",
49
+ "title": "lattice vectors units enum",
50
+ "enum": [
51
+ "angstrom",
52
+ "bohr"
53
+ ],
54
+ "default": "angstrom"
41
55
  }
42
56
  }
43
57
  }