.dev/test_nesting.ps1

class Defect{
    [String]$Name
    [String]$Description
    [RallyVersion]$Version
    [Int]$Other
}
class RallyVersion {
    [String]$Major
    [String]$Minor
}

$myDefect = ('{
    "Name": "Bob",
    "Description": "Test Description",
    "Version": {
        "Major":"1",
        "Minor":"2"
    }
}'
 | ConvertFrom-Json) 
$myDefect
Write-Host "Defect from Json: $myDefect"

$myVersion = [RallyVersion]@{
    Major = "5"
    Minor = "7"
}
Write-Host "Version from Hash: $($myVersion | ConvertTo-Json)"


# $myDefect.RallyVersion = [RallyVersion]()
$myDefectShort = [Defect]@{
    Name = $myDefect.Name
    Description = $myDefect.Description
    Version = [RallyVersion]$myVersion
}
Write-Host "Defect Type: $($myDefectShort.GetType())"

Write-Host "DefectSuiteShort: $($myDefectShort | Select-Object -Property Name, Description, Version -ExpandProperty Version)" 
$myDefect.Version.Major