Add additional information about parameter: value domain, default value, whether it is optional.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java
index 10a6944..4ee8e02 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java
@@ -94,6 +94,10 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_1 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL_1;
 
@@ -111,6 +115,10 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel2 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_2 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL_2;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java
index 3e74abd..8469aec 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java
@@ -102,6 +102,11 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_ts </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (-90.0 … 90.0)°</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL;
 
@@ -122,6 +127,12 @@
      *   <tr><td> GeoTIFF: </td><td> CenterLat </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_0 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value restricted to 0</li>
+     *   <li>No default value</li>
+     *   <li>Optional</li>
+     * </ul>
      */
     static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java
index 4e6f4af..453fa3c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java
@@ -144,6 +144,10 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Geocentric translation file </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Default value: {@code gr3df97a.txt}</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Path> FILE;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java
index 6329809..032ecd2 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java
@@ -128,6 +128,11 @@
      *   <tr><td> EPSG:    </td><td> X-axis rotation </td></tr>
      *   <tr><td> OGC:     </td><td> ex </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [-648000.0 … 648000.0]″</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     static final ParameterDescriptor<Double> RX;
 
@@ -142,6 +147,11 @@
      *   <tr><td> EPSG:    </td><td> Y-axis rotation </td></tr>
      *   <tr><td> OGC:     </td><td> ey </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [-648000.0 … 648000.0]″</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     static final ParameterDescriptor<Double> RY;
 
@@ -156,6 +166,11 @@
      *   <tr><td> EPSG:    </td><td> Z-axis rotation </td></tr>
      *   <tr><td> OGC:     </td><td> ez </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [-648000.0 … 648000.0]″</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     static final ParameterDescriptor<Double> RZ;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java
index f6cf1a2..5c9d580 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java
@@ -70,6 +70,12 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> OGC:     </td><td> dim </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [2…3]</li>
+     *   <li>No default value</li>
+     *   <li>Optional</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Integer> DIMENSION;
 
@@ -82,6 +88,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> OGC:     </td><td> src_semi_major </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) m</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SRC_SEMI_MAJOR;
 
@@ -94,6 +105,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> OGC:     </td><td> src_semi_minor </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) m</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SRC_SEMI_MINOR;
 
@@ -106,6 +122,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> OGC:     </td><td> tgt_semi_major </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) m</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> TGT_SEMI_MAJOR;
 
@@ -118,6 +139,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> OGC:     </td><td> tgt_semi_minor </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) m</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> TGT_SEMI_MINOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java
index 26b1fb2..97c283e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java
@@ -76,6 +76,12 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> SIS:     </td><td> dim </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [2…3]</li>
+     *   <li>Default value: 3</li>
+     *   <li>Optional</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Integer> DIMENSION;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java
index c7db3c0..1c8f138 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java
@@ -61,6 +61,10 @@
      *   <tr><td> GeoTIFF: </td><td> NatOriginLat </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_0 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN;
 
@@ -95,6 +99,11 @@
      *   <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SCALE_FACTOR = Mercator1SP.SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java
index 159fbac..2b7f8eb 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java
@@ -97,6 +97,10 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_1 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL_1;
 
@@ -114,6 +118,10 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel2 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_2 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL_2;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java
index 90d3ca6..8143960 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java
@@ -52,6 +52,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Ellipsoid scaling factor </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java
index 92e2a63..8cedc5d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java
@@ -58,6 +58,11 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_ts </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (-90.0 … 90.0)°</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL = Equirectangular.STANDARD_PARALLEL;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
index ee072ae..d1675b6 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
@@ -85,6 +85,11 @@
      *   <tr><td> GeoTIFF: </td><td> SemiMajorAxis </td></tr>
      *   <tr><td> Proj4:   </td><td> a </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) m</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final DefaultParameterDescriptor<Double> SEMI_MAJOR;
 
@@ -103,6 +108,11 @@
      *   <tr><td> GeoTIFF: </td><td> SemiMinorAxis </td></tr>
      *   <tr><td> Proj4:   </td><td> b </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) m</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final DefaultParameterDescriptor<Double> SEMI_MINOR;
 
@@ -115,6 +125,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> SIS:     </td><td> eccentricity </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [0.0 … 1.0]</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     @Debug
     public static final DefaultParameterDescriptor<Double> ECCENTRICITY;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java
index 70fe4d4..0552b71 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java
@@ -59,6 +59,11 @@
      *   <tr><td> GeoTIFF: </td><td> NatOriginLat </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_0 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value restricted to 0</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN;
 
@@ -93,6 +98,11 @@
      *   <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java
index 48cfce7..9569b39 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java
@@ -64,6 +64,11 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_ts </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (-90.0 … 90.0)°</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL = Equirectangular.STANDARD_PARALLEL;
 
@@ -83,6 +88,12 @@
      *   <tr><td> ESRI:    </td><td> Scale_Factor </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     *   <li>Optional</li>
+     * </ul>
      */
     static final ParameterDescriptor<Double> SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java
index 73cc0b0..7bb3083 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java
@@ -83,6 +83,10 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Semi-major axis length difference </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> AXIS_LENGTH_DIFFERENCE;
 
@@ -96,6 +100,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Flattening difference </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [-1.0 … 1.0]</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> FLATTENING_DIFFERENCE;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java
index a132655..67e9823 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java
@@ -79,6 +79,10 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Latitude difference file </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Default value: {@code conus.las}</li>
+     * </ul>
      */
     private static final ParameterDescriptor<Path> LATITUDE;
 
@@ -91,6 +95,10 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Longitude difference file </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Default value: {@code conus.los}</li>
+     * </ul>
      */
     private static final ParameterDescriptor<Path> LONGITUDE;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java
index 883a641..c65afec 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java
@@ -81,6 +81,10 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Latitude and longitude difference file </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     private static final ParameterDescriptor<Path> FILE;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java
index bd1253b..3031495 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java
@@ -67,6 +67,11 @@
      *   <tr><td> Proj4:   </td><td> lat_0 </td></tr>
      *   <tr><td> ESRI:    </td><td> Latitude_Of_Center </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (-90.0 … 90.0)°</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> LATITUDE_OF_CENTRE;
 
@@ -100,6 +105,11 @@
      *   <tr><td> GeoTIFF: </td><td> AzimuthAngle </td></tr>
      *   <tr><td> Proj4:   </td><td> alpha </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [-360.0 … 360.0]°</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> AZIMUTH;
 
@@ -116,6 +126,11 @@
      *   <tr><td> GeoTIFF: </td><td> RectifiedGridAngle </td></tr>
      *   <tr><td> Proj4:   </td><td> gamma </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: [-360.0 … 360.0]°</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> RECTIFIED_GRID_ANGLE;
 
@@ -132,6 +147,11 @@
      *   <tr><td> GeoTIFF: </td><td> ScaleAtCenter </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java
index c453bd6..d689450 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java
@@ -92,6 +92,11 @@
      *   <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SCALE_FACTOR = Mercator1SP.SCALE_FACTOR;    // Same as PolarStereographicA.
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java
index 44d60a7..db375a9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java
@@ -73,6 +73,10 @@
      *   <tr><td> GeoTIFF: </td><td> NatOriginLat </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_0 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN = LambertConformal1SP.LATITUDE_OF_ORIGIN;
 
@@ -107,6 +111,11 @@
      *   <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SCALE_FACTOR = Mercator1SP.SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java
index 689cc8c..50e47b0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java
@@ -77,6 +77,10 @@
      *   <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_ts </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> STANDARD_PARALLEL;
 
@@ -96,6 +100,11 @@
      *   <tr><td> ESRI:    </td><td> Scale_Factor </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     * </ul>
      */
     static final ParameterDescriptor<Double> SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java
index d82a5a0..e2c39d0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java
@@ -63,6 +63,11 @@
      *   <tr><td> GeoTIFF: </td><td> FalseOriginLat </td></tr>
      *   <tr><td> Proj4:   </td><td> lat_0 </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (-90.0 … 90.0)°</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> LATITUDE_OF_FALSE_ORIGIN;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java
index 4b53854..a6c4093 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java
@@ -127,6 +127,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> SIS:     </td><td> satellite_orbital_period </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) d</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SATELLITE_ORBITAL_PERIOD;
 
@@ -141,6 +146,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> SIS:     </td><td> ascending_node_period </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞) d</li>
+     *   <li>No default value</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> ASCENDING_NODE_PERIOD;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java
index 6b440b9..3be6f8b 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java
@@ -104,6 +104,11 @@
      *   <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
      *   <tr><td> Proj4:   </td><td> k </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)</li>
+     *   <li>Default value: 1</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> SCALE_FACTOR;
 
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java
index b92d25b..facccde 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java
@@ -55,6 +55,10 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Initial longitude </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Default value: -180°</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> INITIAL_LONGITUDE;
 
@@ -66,6 +70,11 @@
      *   <caption>Parameter names</caption>
      *   <tr><td> EPSG:    </td><td> Zone width </td></tr>
      * </table>
+     * <b>Notes:</b>
+     * <ul>
+     *   <li>Value domain: (0.0 … ∞)°</li>
+     *   <li>Default value: 6°</li>
+     * </ul>
      */
     public static final ParameterDescriptor<Double> ZONE_WIDTH;
 
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java
index 7dccd5c..6f8d309 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java
@@ -26,18 +26,27 @@
 import java.nio.file.FileVisitResult;
 import java.nio.file.SimpleFileVisitor;
 import java.nio.file.attribute.BasicFileAttributes;
+import javax.measure.Unit;
 import org.opengis.util.GenericName;
 import org.opengis.metadata.Identifier;
-import org.opengis.parameter.ParameterDescriptor;
+import org.apache.sis.parameter.DefaultParameterDescriptor;
 import org.apache.sis.test.ProjectDirectories;
 import org.apache.sis.internal.jdk9.JDK9;
+import org.apache.sis.measure.Angle;
+import org.apache.sis.measure.Latitude;
+import org.apache.sis.measure.Longitude;
 import org.apache.sis.util.CharSequences;
+import org.apache.sis.util.StringBuilders;
+import org.apache.sis.measure.Range;
 
 import static org.junit.Assert.*;
 
 
 /**
  * Inserts comments with parameter names in the javadoc of parameters.
+ * This class needs to be run explicitly; it is not part of JUnit tests.
+ * After execution, files in the provider packages may be overwritten.
+ * Developer should execute {@code "git diff"} and inspect the changes.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.1
@@ -46,6 +55,16 @@
  */
 public final class ParameterNameTableGenerator extends SimpleFileVisitor<Path> {
     /**
+     * Value as the kind of object expected in {@link DefaultParameterDescriptor}.
+     */
+    private static final Double POSITIVE_ZERO = +0d,
+                                NEGATIVE_ZERO = -0d,
+                                MIN_LONGITUDE = Longitude.MIN_VALUE,
+                                MAX_LONGITUDE = Longitude.MAX_VALUE,
+                                MIN_LATITUDE  =  Latitude.MIN_VALUE,
+                                MAX_LATITUDE  =  Latitude.MAX_VALUE;
+
+    /**
      * The directory of Java source code to scan.
      */
     private final Path directory;
@@ -135,15 +154,15 @@
         for (int i=lines.size(); --i >= 0;) {
             final String line = lines.get(i);
             if (matcher.reset(line).matches()) {
-                final String name = matcher.group(1);
-                final ParameterDescriptor<?> descriptor;
+                final String fieldName = matcher.group(1);
+                final DefaultParameterDescriptor<?> descriptor;
                 try {
                     if (classe == null) {
                         classe = getClass(file);
                     }
-                    final Field field = classe.getDeclaredField(name);
+                    final Field field = classe.getDeclaredField(fieldName);
                     field.setAccessible(true);
-                    descriptor = (ParameterDescriptor<?>) field.get(null);
+                    descriptor = (DefaultParameterDescriptor<?>) field.get(null);
                 } catch (ReflectiveOperationException e) {
                     throw new AssertionError(e);
                 }
@@ -177,14 +196,90 @@
                 /*
                  * Format a HTML table in the comment with the name and aliases of each parameter.
                  */
-                write("<!-- Generated by ParameterNameTableGenerator -->", insertAt++);
-                write("<table class=\"sis\">", insertAt++);
-                write("  <caption>Parameter names</caption>", insertAt++);
-                write(descriptor.getName(), insertAt++);
+                write(insertAt++, "<!-- Generated by ParameterNameTableGenerator -->");
+                write(insertAt++, "<table class=\"sis\">");
+                write(insertAt++, "  <caption>Parameter names</caption>");
+                write(insertAt++, descriptor.getName());
                 for (final GenericName alias : descriptor.getAlias()) {
-                    write((Identifier) alias, insertAt++);
+                    write(insertAt++, (Identifier) alias);
                 }
-                write("</table>", insertAt);
+                write(insertAt++, "</table>");
+                /*
+                 * Format other information: default value, value domain, whether the value is mandatory, etc.
+                 * Default value of zero are omitted (i.e. unless otherwise specified, default values are zero
+                 * in the tables that we format). Range of values of [-90 … 90]° for latitude or [-180 … 180]°
+                 * for longitude are also omitted. In other words, we report only "unusual" things in the notes.
+                 */
+                Object  defaultValue = descriptor.getDefaultValue();
+                Range<?> valueDomain = descriptor.getValueDomain();
+                boolean  isOptional  = descriptor.getMinimumOccurs() == 0;
+                boolean  noDefault   = (defaultValue == null);
+                Object   minValue    = null;
+                Object   maxValue    = null;
+                if (valueDomain != null) {
+                    minValue = valueDomain.getMinValue();
+                    maxValue = valueDomain.getMaxValue();
+                    final boolean inclusive = valueDomain.isMinIncluded() && valueDomain.isMaxIncluded();
+                    if (fieldName.contains("LATITUDE") || fieldName.contains("PARALLEL")) {
+                        if (inclusive && MIN_LATITUDE.equals(minValue) && MAX_LATITUDE.equals(maxValue)) {
+                            valueDomain = null;
+                        }
+                    } else if (fieldName.contains("LONGITUDE") || fieldName.contains("MERIDIAN")) {
+                        if (inclusive && MIN_LONGITUDE.equals(minValue) && MAX_LONGITUDE.equals(maxValue)) {
+                            valueDomain = null;
+                        }
+                    } else if (minValue == null && maxValue == null) {
+                        valueDomain = null;
+                    }
+                }
+                if (POSITIVE_ZERO.equals(defaultValue)) {
+                    defaultValue = null;
+                }
+                if (defaultValue != null || valueDomain != null || isOptional || noDefault) {
+                    write(insertAt++, "<b>Notes:</b>");
+                    write(insertAt++, "<ul>");
+                    if (valueDomain != null) {
+                        final int p = buffer.length();
+                        buffer.append("   <li>");
+                        if ((minValue != null && minValue.equals(maxValue)) ||
+                            (NEGATIVE_ZERO.equals(minValue) && POSITIVE_ZERO.equals(maxValue)))
+                        {
+                            buffer.append("Value restricted to ").append(maxValue);
+                            StringBuilders.trimFractionalPart(buffer);
+                        } else {
+                            buffer.append("Value domain: ").append(valueDomain);
+                        }
+                        lines.add(insertAt++, buffer.append("</li>").toString());
+                        buffer.setLength(p);
+                    }
+                    if (defaultValue != null) {
+                        final int p = buffer.length();
+                        final boolean isText = !(defaultValue instanceof Number || defaultValue instanceof Angle);
+                        buffer.append("   <li>").append("Default value: ");
+                        if (isText) buffer.append("{@code ");
+                        buffer.append(defaultValue);
+                        if (isText) buffer.append('}');
+                        StringBuilders.trimFractionalPart(buffer);
+                        final Unit<?> unit = descriptor.getUnit();
+                        if (unit != null) {
+                            final String symbol = unit.getSymbol();
+                            if (!symbol.isEmpty()) {
+                                if (Character.isLetterOrDigit(symbol.charAt(0))) {
+                                    buffer.append(' ');
+                                }
+                                buffer.append(symbol);
+                            }
+                        }
+                        lines.add(insertAt++, buffer.append("</li>").toString());
+                        buffer.setLength(p);
+                    } else {
+                        write(insertAt++, "  <li>No default value</li>");
+                    }
+                    if (isOptional) {
+                        write(insertAt++, "  <li>Optional</li>");
+                    }
+                    write(insertAt++, "</ul>");
+                }
             }
         }
         /*
@@ -200,9 +295,11 @@
      * Appends the given line at the given position. This method writes the margin
      * (typically spaces followed by {@code '*'} and a single space) before the line.
      */
-    private void write(final String line, final int insertAt) {
+    private void write(final int insertAt, final String line) {
         final int p = buffer.length();
-        buffer.append(' ').append(line);
+        if (!line.isEmpty()) {
+            buffer.append(' ').append(line);
+        }
         lines.add(insertAt, buffer.toString());
         buffer.setLength(p);
     }
@@ -211,7 +308,7 @@
      * Appends the given authority and name at the given position. This method writes the margin
      * (typically spaces followed by {@code '*'} and a single space) before the line.
      */
-    private void write(final Identifier id, final int insertAt) {
+    private void write(final int insertAt, final Identifier id) {
         final int p = buffer.length();
         final String authority = id.getCodeSpace();
         buffer.append("   <tr><td> ").append(authority).append(':')